转载自:http://www.cnblogs.com/stli/archive/2010/10/16/1853190.htmlphp
OOPC是指OOP(Object-Oriented Programming)与C语言的结合,它是一个面向对象C语言编程框架。它是一套C语言的宏,定义了OOP概念的关键字,借助于这一套宏,实现面向对象的特性,如类、对象、继承、接口、多态、消息等。html
C++对于大型软件架构的良好可控性,和对之后程序员维护代码时良好的可读性;然而就目前来讲,在嵌入式领域普遍的使用C++显然是不现实的事情。通常的嵌入式系统开发中只用到了其中的一小部分功能,而不须要所有的机制,好比多重继承、运算符重载等。所以,许多嵌入式系统的开发者就舍弃了C++的庞大身躯而回归到精简的C环境中。 程序员
通常状况下,一个更容易扩展、维护的软件一般采用的是OOP的思想,添加一个本来不存在的相对无关单独的个体,总比在一个已经存在的过程内硬塞进去一个对象要简单;并且面向过程更容易致使混乱的维护。然而舍弃C++的同时也舍弃了珍贵的OOP能力,实在太惋惜了。 编程
C语言良好的可移植性,对内存等良好的操做性以及执行之速度均是通常嵌入式产品的不二首选。咱们要应此放弃C++吗?固然不,幸亏已经有不少优秀的设计师为咱们指明了C语言OOP化的道路。 架构
虽然OOPC语法不如C++那么简洁,可是OOPC也有亮丽的特点,就是编译后的程序所占的内存空间比C++小的多,执行效率高,适用于Embedded System。框架
Axel-Tobias Schreiner阐述了利用普通ANSI-C一样能够实现面向对象思想,1993年10月出版图书《Object-oriented Programming with ANSI-C》阐述了利用ANSI-C实现面向对象编程思想的基础。oop
本书下载地址:http://www.planetpdf.com/codecuts/pdfs/ooc.pdf优化
中文翻译地址:http://wiki.chinaunix.net/index.php/OOC:内容spa
在2001年,Laurent Deniau以C 的宏指令(Macro)定义出OOPC的机制,并在其网页上公开与你们分享。请参考其网页:http://ldeniau.home.cern.ch/ldeniau/html/oopc/oopc.html.net
LW_OOPC(Light Weight Object-oriented Programming with C,2010.1.24开源)轻量级的面向对象C编程框架是由台湾高焕堂先生以及他的MISOO团队创做了第一个版本以后,又由金永华改进优化,再以LGPL协议开源出来的。这个框架的面世与高焕堂的著做《UML+OOPC嵌入式C语言开发精讲》有关。总共一个.h文件、25个宏、约100行代码,很是的轻量级,但很好的支持了不少的面向对象特性,好比继承、多态(非彻底意义上的多态,由于要提供类型,不是彻底统一的形态),能够很优美的实现面向接口编程。
LW_OOPC不足以提供足够的能力使咱们实现面向对象全部的概念。可是咱们依然能够应用它们完成咱们简单的面向对象思想的构建。