什么时候发生c ++头文件的预处理

时间:2014-07-09 14:59:54

标签: c++ header c-preprocessor

所以我有一个头文件创建一个看起来像这样的结构..

“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"时会立即发生吗?

1 个答案:

答案 0 :(得分:0)

预处理是第一步,它在编译之前发生。所有宏都被扩展,头文件被其内容替换,在这种情况发生后,程序就会被编译。

您可以使用选项-E

查看预处理器输出
gcc -E main.cpp