c/c++宏展开
c/c++在编译过程中,预处理阶段会进行宏的展开。 定义一些复杂的宏的情况下,宏非常容易写错误,我们就需要把宏先展开,看一下是否自己预期的代码。
下面以main.c举例
1. gcc系列的编译器:
-E参数,只进行预编译,宏展开
预编译main.c输出到main.i文件中,然后查看main.i就ok了
gcc -E main.c>>main.i
gcc -E main.c -o main.i
2. msvc编译器
-P参数,只进行预编译,预处理到文件
命令行模式下:
预处理到main.i文件中,ms编译器会自动生成对应源文件名的 xxxx.i
cl -P main.c
cl /P main.c
使用宇宙第一ide(vs):
右键main.c 属性 c/c++选项 / 预处理器 / 预处理到文件
右键main.c 编译 源文件路径下就会多一个main.i文件