所以我有一个头文件创建一个看起来像这样的结构..
“CreateStruct.h”
#define CREATE_STRUCT(NAME, VAR) \
struct NAME {\
DECLARE_VAR(VAR)\
};\
#define DECLARE_VAR\
//....
“的main.cpp”
#include "CreateStruct.h"
//....
编译正确并正确创建结构..
我唯一感到好奇的是,当这个处理发生时......
当main.cpp完成编译时会发生吗?
或者当编译器看到行#include "CreateStruct.h"
时会立即发生吗?
答案 0 :(得分:0)
预处理是第一步,它在编译之前发生。所有宏都被扩展,头文件被其内容替换,在这种情况发生后,程序就会被编译。
您可以使用选项-E
查看预处理器输出gcc -E main.cpp