背景
笔者的背景是有个定义错误码的头文件,但是每个错误码分为了几个段(如 p r o j e c t − {project}- project−{module}-${code}),都是用宏定义,导致在搜索错误码时很不方便。于是想到了宏展开的形式,把当前文件的宏都展开,得到实际错误码的值。
宏展开是在预处理时,所以想要得到某个.h文件下所有的宏定义列表则不需要做实际编译,仅需通过gcc -E
做预处理,并输出宏定义列表即可
步骤
-
创建一个包含你所需头文件的文件,例如test.c
#include "xxx/err_code.h" int main() { return 0; }
-
执行输出宏定义列表指令
gcc -E -dM test.c
-
若出现:test.c:1:10: fatal error:xxx/err_code.h: No such file or directory,则表示你需要引入头文件所在的文件夹,找到头文件所在的文件夹/path/a,使用
-I
选项来指定每个文件夹的路径(可以多次使用)gcc -E -dM -I /path/a -I /path/b test.c