GCC 预处理选项-E

gcc-E 选项告诉gcc只进行预处理。

如代码:
1.cpp

#include<stdio.h>

#define gg printf

int main(int argc,char* argv[])
{
    gg("%dn",argc);
    return 0;
}

使用命令:

gcc -E 1.cpp -o 1.i

-o指示输出的目标文件名

将1.cpp预处理后的结果存放到1.i中

.....
extern void funlockfile (FILE *__stream) throw ();
# 943 "/usr/include/stdio.h" 3 4
}
# 2 "1.cpp" 2

int main(int argc,char* argv[])
{
 printf("%dn",argc);
}

我们可以看到,宏gg被展开成printf了