C构造体尽然可以这样用

C结构体尽然可以这样用?
下面是appro方案中关于白平衡一段的C代码,简化如下
C/C++ code

typedef struct A_Obj{
    struct A_Fxns *fxns;
}A_Obj;

typedef struct A_Obj *A_Handle;

typedef struct A_Fxns{
    int a;
    int (*process)(A_Handle handle,int b);
    int (*control)(A_Handle handle,int b)
}A_Fxns;




感觉这个A_Handle绕了一圈又绕道自己肚子里去了,请大家看看这是怎么回事

------解决方案--------------------
这是用C语言来实现面向对象的写法,把A_Handle handle看成this指针就容易理解了。
------解决方案--------------------
这样的代码看起来好累。
如果要用面向对象的C,可以用G-Object/GLib库。
------解决方案--------------------
用C实现面向对象
太复杂了
感觉没有必要

有 objective-c
还有C++, JAVA
这个都是语言级别上就实现了面向对象