C面向对象-构建对象
来源:互联网 发布:如何查看淘宝降权 编辑:程序博客网 时间:2024/06/06 06:32
一组松散的变量是比较难追踪的,所以一般采用结构体将其封装起来
struct{ tBoolean logOn; static enum eLogLevel ouputLevel[NUM_LOG_SUBSYSTEMS];}sLogStruct;
一般我们会选择直接进行创建,像这样:
static struct sLogStruct gLogData;
但是如果要让C代码看起来更像面向对象,那么这个结构体应该在初始化的时候进行创建,分配内存,并返回给调用函数:
struct sLogStruct* LogInit(){ int i; sruct sLogStrct *logData = malloc(sizeof(*logData)); logData->FALSE; for(i = 0; i < NUM_LOG_SUBSYSTEMS; i++){ logData-> outputLevel = eNoLogging; } return logData;}
这样做的好处不单单实现了面向对象,而且还可以在初始化的时候对一些变量进行特殊赋值。当然还需要增加一个方法去释放这个对象,这个时候只需要增加一个函数就可以了。
int LogClose(struct sLogStruct* logData){ if(logData!= NULL){ free(logData); return 1; } return 0;}
当然一些C面向对象的范式里头会提到将上面Init与Close的函数命名为LogData和_LogData,以更靠近C++语法,但是个人认为对于嵌入式而言,init与close会更好理解。
阅读全文
0 0
- C面向对象-构建对象
- 面向对象的构建
- Json-c构建对象
- C与面向对象
- C 面向对象程序设计
- c实现面向对象
- Obj-c面向对象
- JAVA面向对象C
- c面向对象设计
- c++-->面向对象
- 面向对象(C++)
- [C#] 面向对象
- c#-面向对象
- c实现面向对象
- c实现面向对象
- 面向对象的 C
- Objective C面向对象
- objective-c面向对象
- Oil Deposits
- 项目的开发模式
- poj 1830 开关问题
- Go编程基础—方法(method)
- nginx基础配置篇
- C面向对象-构建对象
- JS-1-解析与执行
- Codevs 1021 玛丽卡
- arp脚本
- java的包Package中同名类的冲突及其理解
- ARM驱动之流水灯
- windows系统numpy的下载与安装教程
- 深入正则表达式应用
- 华为机试:简单密码破解、字符串通配符