要想让native C模拟OO编程,对指针的灵活使用还是比较重要,不过指针也是万恶之源,使用时必须谨慎否则会出现意想不到的结果(跑题了)。。。。上一篇的代码可能有点简单了,下面的代码运用了函数指针模拟了oo编程

#include <stdio.h>
struct A {
 int a;
 void (*showA)(struct A *);
};
static void A_showA(struct A *THIS){
 printf("the value of obj's a is %d\n",THIS->a);
}
void iniA(struct A *THIS){
 THIS->a=100;
 THIS->showA=A_showA;
}
int main(){
 struct A obj;
 iniA(&obj);
 obj.showA(&obj);
 return 0;
}

native C中没有C++/Java/C#的所谓的“方法”,因为本质上都是一个自定义函数,类与结构体也是如此,struct和class也只是编译细节上有所不同,这个我以后会专门出一期教程的,另外要强调的是,C语言的结构体是可以包含函数指针的,这一编译特性也使用native C写OO程序变得可行简单