因为个人爱好,平时在家学习单片机开发,没事写写程序,不知道怎么地,突然就想用C模仿C++写程序,于是乎,弄了几个宏定义 。。。
首先,为了在样子上长得像,需要这样一个宏定义,如下:

文章插图
光这样是不行的,因为C++中有默认的构造函数,析构函数,所以还需要如下这个东西,如下:

文章插图
【用C语言,模仿C++写单片机程序】
这样就有了一个this指针,构造函数fnCtor,析构函数fnDtor,这个结构体里面的uiClassSize,后面会用的到,用来保存创建的类占用存储控件大小的 。
由于每一个类都需要如上的构造函数,析构函数,所以还需要一个宏来实现定义一个类,如下:

文章插图

文章插图
上面几个宏就能大概实现了 。把这几个宏放到一个头文件中,以后新建一个类的时候,新建一个头文件并引用这个头文件 。下边,用这种方式定义一个类(这里没有显示上面宏定义的头文件,其实包含了) 。如下:

文章插图
每新建一个类都要有上图中,class_default;这个是第二张图片中结构体指针变量,这是为了每一个类都有构造函数,析构函数,其他元素就可以自定义了,也就是类的成员变量,比如flag,data,当然也可以用函数指针来声明类的成员函数 。
仅仅这样还是不够滴 。还需要一个宏,如下:

文章插图
这个宏用在类对应的c文件中使用,如下:

文章插图
前两个函数是构造函数,和析构函数 。功能就自己定义了 。最下面的const CLASS(CTest) 后面是名字,可以自己取,里面的内容中第一条等号后面的 一定要是 &__XXX_class ,XXX就是前面头文件中类的名字,一定要这样写 。其实就是把 class_define(X) 这个宏中定义的__X_class的地址赋值给了pClass_default 。到这里就搞定了 。
为了能够生成一个对象,还需要这样一个函数,用来生成一个类的对象,函数如下:

文章插图
以后用这个函数创建一个类就可以了 。到这里就差不多了 。
使用类的时候是这样的,如下:

文章插图
以后有时间在贴出具体的用这种方法写单片机程序的例子 。
推荐阅读
- 如何使用 JavaScript 将文本复制到剪贴板?
- 整理了60个Python小例子,拿来即用
- 电脑主板上的电池有什么作用
- 可以装进裤兜!这几款极限尺寸的小电脑能满足我们的日常使用
- 右手肘关节一用力就痛
- 腰上有两个窝是肾虚吗?
- 红茶常用评语,红茶推荐知乎
- 茶叶蛋红茶还有调料包,红茶做茶叶蛋
- 盖碗茶红茶,红茶能清脂吗
- 喝小种红茶用什么杯子,新白茶可以喝吗
