那么当你运行预处理器时实际会发生什么呢?
1. 替换所有的三字母组合,我会在将来的一篇文章中谈论到他,因为尽管他只是一个历史上的特性(而且你也要在GCC中对它进行切换),它仍让是很有趣的.
2. 将并列的源代码分成多行.
3. 移除所有的注释并用一个空格替换.
4. 处理(我们上面讲到的)的预处理器指令。对于 #include, 他会在新文件上递归执行1 - 3步 :-)
5. 处理转义序列.
6. 把文件发送给编译器
如果你想看看预处理之后你的文件会是什么样子 (谁不想呢?),你可以向 gcc 传入 -E 选项. 这将会想stdout标准输出发送预处理过的源代码,并且没有编译和连接就直接终止gcc命令的执行。
例如
- g++ -E myfile.cpp
你也可以使用这个参数:
- -save-temps
编译的后会有一份临时文件。
拿下面这个简单的程序说吧:










