您的位置:首页 > 其它

一种预编译容易出错的地方:

2016-03-15 13:58 225 查看
经常见到这样的一段程序:

1 /* file of aa.h*/

#ifdef XXX_MODULE_GLOBALS
#define XXX_EXT
#else
#define XXX_EXT extern
#endif

XXX_EXT unsigned char VAL1, VAL2......

// end of file of aa.h

2/* file of aa.c*/

#define XXX_MODULE_GLOBALS

#include aa.h

VAL1=...

VAL2=...

3/* file of bb.c.......*/

#include aa.h

VAL1=...

VAL2=...

总结:如果步骤二中

#define XXX_MODULE_GLOBALS

#include aa.h

这两句的顺序不是这样的而是:

#include aa.h

#define XXX_MODULE_GLOBALS

编译器就会报错:变量未定义,所以一定要注意顺序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: