C语言面向对象编程框架 | 帅小萌

C语言面向对象编程框架

摘要:

本文推荐一种新开源(2010.1.24开源)的轻量级的面向对象C编程框架LW_OOPC(Light Weight Object-oriented Programming with C),总共一个.h文件、25个宏、约100行代码,非常的轻量级,但很好的支持了很多的面向对象特性,比如继承、多态(非完全意义上的多态,因为要提供类型,不是完全统一的形态),可以很优美的实现面向接口编程。
这个框架是由台湾高焕堂先生以及他的MISOO团队创作了第一个版本之后,又由金永华改进优化,再以LGPL协议开源出来的。
这个框架的面世与高焕堂的著作《UML+OOPC嵌入式C语言开发精讲》有关。
为什么要用面向对象?
面向过程方式开发的系统,代码复杂,耦合性强,难以维护,是大家都知道的。
面向对象,改变了程序员的思维方式,以更符合客观世界认知规律的视角来认识世界,进行抽象,从而在更高的抽象层次上解决问题。
抽象层次高,意味着高屋建瓴,能够看清全貌,能够控制全局,能够以简洁的方式轻松扩展反映现实世界。
这样构建的系统,能够在不同的抽象层次上理解和掌握,越高抽象层次越简单,越容易把握。
所以学习起来,自顶向下,可以逐步深入,很容易理解和掌握系统。
当然,上述这一点只是从理解系统的难度上做的粗浅的分析。
从另外一个方面讲,面向对象极大的解除了耦合,提高了模块的内聚性。
从而使得复用更轻松,测试更轻松,理解也更轻松,因为不必整个系统全部了解,可以每个模块各个击破,再结合上面的不同抽象层次的理解,就可以把握整个系统了。
为什么要用C实现面向对象?
虽然C++已经出现很久了,但C语言的生命力还是非常旺盛。
刚从JAVA/C#转到C的同事,无法从面向对象切换到面向过程,但又必须与C语言同事们在遗留的C系统上开发软件,就非常需要C语言实现面向对象的手段。
C和C++之争由来已久,估计从C++出生就有了,估计要持续到它们中的一种去世^_^
在这个争论不休的年代,往往各种原因使得语言的选择身不由己,这个时候C也能实现OO,将给您带来失去C++后不用失去OO的欣慰。
怎么用C实现面向对象?
本文推荐一种新开源(2010.1.24开源)的轻量级的面向对象C编程框架LW_OOPC(Light Weight Object-oriented Programming with C),总共一个.h文件、25个宏、约100行代码,非常的轻量级,但很好的支持了很多的面向对象特性,比如继承、多态(非完全意义上的多态,因为要提供类型,不是完全统一的形态),可以很优美的实现面向接口编程。
另外,也有很多其它C实现面向对象的参考资料,
比如:
1、1993年出现的《Object-oriented Programming with ANSI-C》,可能是这方面资料的鼻祖吧?
2、这里也有一个参考网址:
3、Google或者百度一下,还可以找到不少相关资料。
(0)

相关推荐

  • 回到未来:Smalltalk 编程系统

    Smalltalk 是19世纪70年代由Alan Kay 设计的,第一个以面向对象(Object-Orientation)为主要范式的编程语言1.Smalltalk 具有大量首创的特性,深刻影响了其之 ...

  • C 程序员迈向百万年薪的最后一道坎

    C++历史背景 C ++编程语言的历史可以追溯到1979年,当时Bjarne Stroustrup为博士学位论文进行了一些开发.在Stroustrup可以使用的所有单词中,有一种被称为Simula的语 ...

  • 学习Python哪些框架好用?常见推荐!

    在众多编程语言之中,想必大家都听说过Python语言,不过似乎很多人对于这种语言了解的并不是很深,你知道Python语言是什么吗?Python有哪些框架呢?我们一起来看看. Python是一种跨平台的 ...

  • Python属于什么语言?0基础必看!

    关于Python是什么类型的语言,很多人都搞不清楚,有的人说它是开源的编程语言,也有的人说它是面向对象的编程语言,接下来小编通过这篇文章为大家解答一下. 先来了解一下Python.Python是FLO ...

  • 编程大佬总结的50点学习C 的方法,一针见血,少走弯路

    马上到2021年了,我们都知道2020年,不论是工作还是生活都产生了很大的影响. 2021年,出现了很多的工作机会,互联网作为热门行业,市场需求越来越大,做一名程序员似乎更加吃香一点. 社会对于c 语 ...

  • Python是什么?Python入门!

    现如今,Python已经成为当下非常热门的编程语言,反超众多编程语言前辈,位居四大编程语言之一,可以应用在众多领域,因此越来越多的人都加入到Python学习大军,那么Python是什么?为什么Pyth ...

  • 钩针图解|小萌龙一对,帅!

    天气好像渐渐热起来了,春天就在不远处.加把劲,"牛"转乾坤,牛起来!虽然今天的图解,跟牛年并没有什么半毛钱关系,嘿嘿~ 两只小龙需要用到的主要工具为2.5mm钩针,配套眼睛选用8m ...

  • C语言初级编程实践:2048小游戏

    大部分同学学习C语言编程以后不知道能通过什么样的项目才可以锻炼自己的思维功力,2048相信大家都应该熟悉,不管是手机上还是网页版的相信大家都玩过,这个简单的控制台版本的游戏是我曾经在伟易达上班时一个嵌 ...

  • 一步步分析-C语言如何面向对象编程

    这是道哥的第009篇原创 一.前言 在嵌入式开发中,C/C++语言是使用最普及的,在C++11版本之前,它们的语法是比较相似的,只不过C++提供了面向对象的编程方式. 虽然C++语言是从C语言发展而来 ...

  • Python教程:面向对象编程的一些知识点总结

    类与实例 类是对象的定义,而实例是"真正的实物",它存放了类中所定义的对象的具体信息. 类.属性和方法命名规范 类名通常由大写字母打头.这是标准惯例,可以帮助你识别类,特别是在实例 ...

  • 面向对象编程(中)

    继承性(inheritance) 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类 中, 那么多个类无需再定义这些属性和行为,只要继承那个类即可 多个类称为子类(派生类),单独的这个类称为父类 ...

  • 笔试编程框架总结!

    每日干货 & 每月组队学习,不错过  Datawhale干货  作者:吴忠强,东北大学,Datawhale成员 前面的话 经历面试前,我一直埋头刷题,到了面试才发现,没有一套应对真实环境的编程 ...

  • java 面向对象编程

    什么是面向对象 回顾方法的定义与调用 方法的定义 import java.io.IOException; //Demo01 类 public class Demo01 { //main方法 publi ...

  • 编织图解 海洋系小萌物5款(海星 鲸鱼 螃蟹 海马 水母)

    鲸鱼  螃蟹  海马 水母 (左右滑动可看全说明) 1.常用基础针法(X:短针,V:加针  A:减针  CH:锁针 S或SL:引拔针  T:中长针 F:长针  TV:中长针加针  FV:长针加针 W: ...

  • C语言经典编程(浙大版C语言第三版)详解

    C语言经典编程详解 -- 一览表: 1.[C语言经典编程]练习2-1 Programming in C is fun! (5分) 2.[C语言经典编程]练习2-3 输出倒三角图案 (5分) 3.[C语 ...