在linux 下编译c程序时经常会遇到“ error:dereferencing pointer to incomplete type”的问题,该问题的原因是:结构体定义不规范造成的,回想一下,教科书中正规的结构体定义方式是:
struct 结构体名{
数据类型 成员1;
...
数据类型 成员n;
};
在linux中经常使用gcc进行编译c语言程序时更严格的遵守了c的规范,而对于使用windows下VC等开发环境,此项编译规则要宽松和自由很多,因此windows下开发的人,经常不按照c的规则定义结构体,才更容易犯此类错误。
struct 结构体名{
数据类型 成员1;
...
数据类型 成员n;
};
在linux中经常使用gcc进行编译c语言程序时更严格的遵守了c的规范,而对于使用windows下VC等开发环境,此项编译规则要宽松和自由很多,因此windows下开发的人,经常不按照c的规则定义结构体,才更容易犯此类错误。