����ƫ���� C ���������������̷�ʽ
�����������̲����������ֳ��ϣ��Ҷ�����������ʹ�÷dz��������ܲ��������á����ص����۾Ͳ�չ���ˡ�
���ǣ�ijЩ�����£���������������ȷ�DZȽϺõķ��������� UI ���ܣ��ֱ��� 3d ��Ⱦ�����еij���������C ���Զ������������̲�û��ԭ��֧�֣���û��ԭ��֧�ֲ������ڲ��ʺ��� C д�������������������ǶԾ���ʵ�ַ�ʽ�и�����ѡ����
���� C д�������������ij���Ա�� C++ Ӱ�������ͼ�ú�ģ����һ������ C++ �������Ѿ�ʵ�ֵĶ���ģ�͡����������Ⲣ����һ���õķ�����C++ �Ķ���ģ�ͣ���������Ϊ����ʵ�ֲ������ܣ���ֱ�����ֳ������������� C++ �б����õ� inline ����ȷ��Ч��ȴ�ƻ��˷���ԭ����C++ �ļ̳��ǹ��������ϡ�
�����������������������ò�ͬ������Ԫ�й�ͬ�IJ�����ʽ���ʺϳ����Ĵ��������ݲ�����ʽ�IJ�ͬ�����ǻ�������Ԫ����ͬ�ķ��顣һ�����ݿ��ܳ������������Ҳ���Գ������Ǹ������ȡ�������Ӳ�ͬ�ķ�����ȡ�Ĺ��ԡ���Щ�ɹ�ͳһ�����Ĺ��Գ�֮Ϊ�ӿڣ�Interface�����ӿ��� C �����У�����Ϊһ�麯��ָ���ļ��ϡ����� C++ �У���Ϊ������
����ƫ������������ʵ�ַ�ʽ��ʹ�� C ���ԣ��������ģ�
����һ�����ݣ�������Ҫ�����ǿ���������һ�ֽ��� foo �Ĺ��ԡ��ѷ������������ݶ���Ϊ foo_object
��ͨ�������ǻ������� api ȥ�ٿ� foo_object
��
�ھ���ʵ��ʱ������һ���� foo.c ��ʵ���ļ��У������� foo_object
�ṹ��������һЩ foo_dosomething
���������ݳ�Ա��
���ǣ����ϻ���������Ҫ������Ϊ�����ǻ��в�ͬ�����ݣ�����ֻ�DZ��ֳ� foo_object
ijЩ���������ԡ����ڲ�ͬ�����ݣ������� dosomething ʱ��ʵ�������IJ���Ҳ������������ʱ��������Ҫ������һ���ӿڣ��� foo.c �ڲ�ʹ�á���ô�����ϵ�ͷ�ļ�����Ҫ��һЩ�ģ��ѽӿ� i_foo
�Ķ����ӽ�ȥ������ create ������
�����������͡�i_foo
�ǹ� foo_dosomething
�ڲ�ʹ�õ�һ���ӿڡ����� foo_object
ʱ�����ǰ�һ���ⲿ���� data ��Ϊ foo_object
�������Զ������� i_foo
�ӿ�������һ�𣬴��빹�캯�� foo_create
��һ�㣬�һ�����ÿ������ foo_object
���ԵĶ���ʵ��һ���������õ���Ӧ�� i_foo
���磺
����һ�� foo_object
�����Ĵ��뿴������������
struct foo_object
�Ķ����У���ȻҪ��¼ i_foo
�Ľӿ�ָ���� data ����ָ�롣�� C++ �Ĺ۵㿴��foo_object
�ǻ��࣬��Ҳ����һЩ������Ա�ͷ����ij�Ա��������������������ʵ��ʱ����д������ i_foo
�����ݣ��������麯������data �������ڶԻ��� foo_object
�̳�ʱ��չ�����ݳ�Ա���������������ʹ�������ϵķ�ʽ����չ��Ա����������һ�������ԣ����ṩ�˸��͵����ϡ����е��������Ҳ������ˡ�
ͨ������������������
�˴�������һ�����⣺data �������ڸ���˭��������
�����ڹ����Ǹ��ܴ��Ŀ��⡣Ҳ�Ǵ�����ʹ�� C/C++ �����������ĸ��Ӷ���Ҫ��Դ���Ҹ��������ڰ������ڹ��������������������� foo_object
ģ��һ�㲢������ data �������ڹ�������ֻ���� struct foo_object
����Դ�ͷš�
�Լ���Ӫ�Լ������ҵ� C �������������Ĺ۵�֮һ���������ڲ��û������Ա��������õĽ����������⡣���� C �� Lua ������ C �� C++ �����������û������Ա��̣���ôҲ������֮��������һ��ͬ���� C ���Ա�д�IJ������������������⣬�����´�������
�����������ڹ��������������Լ��ٺܶ࣬Ҳ������������
ps. C ������һ�������͵����ԡ����ٱ� C++ Ҫ��һЩ���������ڣ�
void * �� C �����п���ָ����������ָ�롣��������������ָ�븳ֵ��һ�� void * ������Ҳ����һ�� void * ���������ض���ָ�����ͱ����������� C++ �в��Ƽ������ᱻ���������棩
C �����еĺ���ָ��Ҳ�Ƚ���Ȥ��ͨ������ͬ���͵ĺ���ָ�����ֵ�ǻ����������������ģ����Ͳ�ͬ������Ȼ�����ǿ�����һ�� void * ���������⡣����ʱ�����������������ͼ����ϸ�һЩ���������Dz�ϣ����һ������ָ�븳ֵ��һ������ָ�롣��ϣ����������Ҫ���ắ�������IJ��졣
�� C �����У�void (*foo)() ���Ա��������ⷵ�� void �ĺ���ָ�롣���������� void foobar(int) �ĵ�ַ����ǰ���� foo ������������ C ���IJ������ݹ�����֤�ģ���
���ԣ��� C ���Ա�������Ҫע�⡣�������붨��һ�������ܲ����ĺ��������ñ�����������������Щ�����Ķഫ���˲��������䡣�������� .h �ļ����ϸ����� void foo(void) ��ʾ foo ���������ܲ�����
�ڴ�ͳ�� C �����У��Խṹ��ʼ����Ҫ�dz�С�ġ�������ǵ� i_foo
�ӿڶ�����ʹ���� C ���Ľṹ������Ҫ�dz�����С�ġ���û�� C++ �����������������£�
C99 �����ӵ����ǿ�����㣨�ڳ�ʼ���ṹʱ�����Բ���������д����Ա�����֣���ֵ�ò��á�
Comments
Posted by: IT������̳ | (42) March 2, 2012 07:54 PM
Posted by: guaniu | (41) January 26, 2012 12:07 AM
Posted by: DavidWang | (40) October 20, 2011 01:50 PM
Posted by: zldrobit | (39) May 12, 2011 04:00 PM
Posted by: Anonymous | (38) January 5, 2011 03:56 PM
Posted by: softtiger | (37) December 6, 2010 01:40 PM
Posted by: softtiger | (36) December 6, 2010 01:29 PM
Posted by: Johnny | (35) November 18, 2010 04:13 PM
Posted by: zen_yue | (34) September 7, 2010 01:46 AM
Posted by: pingf | (33) July 4, 2010 12:57 AM
Posted by: magic | (32) April 24, 2010 04:23 PM
Posted by: wf | (31) April 3, 2010 11:29 PM
Posted by: fooy | (30) March 31, 2010 01:06 AM
Posted by: ix | (29) March 30, 2010 07:35 PM
Posted by: sjinny | (28) March 29, 2010 11:46 PM
Posted by: livy | (27) March 29, 2010 05:22 PM
Posted by: Anonymous | (26) March 26, 2010 05:23 PM
Posted by: mike | (25) March 26, 2010 03:20 PM
Posted by: sjinny | (24) March 25, 2010 11:26 PM
Posted by: �������� | (23) March 22, 2010 09:27 AM
Posted by: Erick | (22) March 20, 2010 09:14 PM
Posted by: kpx | (21) March 17, 2010 10:56 PM
Posted by: qianqians | (20) March 16, 2010 06:48 PM
Posted by: ���� | (19) March 16, 2010 06:00 PM
Posted by: cloud | (18) March 16, 2010 01:18 PM
Posted by: ���� | (17) March 16, 2010 10:41 AM
Posted by: С��Ϳ | (16) March 16, 2010 10:14 AM
Posted by: ���� | (15) March 16, 2010 10:11 AM
Posted by: Anonymous | (14) March 16, 2010 09:23 AM
Posted by: ���� | (13) March 15, 2010 04:09 PM
Posted by: cloud | (12) March 15, 2010 01:26 PM
Posted by: С��Ϳ | (11) March 15, 2010 12:15 PM
Posted by: dwing | (10) March 15, 2010 10:46 AM
Posted by: volfmath | (9) March 15, 2010 10:27 AM
Posted by: haxixi | (8) March 14, 2010 11:58 PM
Posted by: liching | (7) March 14, 2010 10:59 PM
Posted by: Cloud | (6) March 14, 2010 07:29 PM
Posted by: cyberscorpio | (5) March 14, 2010 06:45 PM
Posted by: lichking | (4) March 14, 2010 04:23 PM
Posted by: ����� | (3) March 14, 2010 01:47 PM
Posted by: seagj | (2) March 13, 2010 06:21 PM
Posted by: danny | (1) March 13, 2010 05:10 PM