![]() |
1
56
根据您使用的编译器,应该有一种方法来查看 preprocessor (执行宏扩展,编译器根本不知道宏)完成。 对于GCC,选项是 -E . 下面是一个使用toy代码而不是实际的gtk+宏的简化示例:
|
![]() |
2
11
在Visual Studio中,可以生成预处理器生成的翻译单元文件。您可以选择项目选项,C/C++ +预处理器,并将“生成预处理文件”或“预处理到文件”放在“是”上(或使用/P或/EP编译器开关,以包含行号或不)。 |
![]() |
3
9
可以在运行时转储宏的扩展,如下所示:
程序打印:
然而,这只会产生 满的 膨胀。如果您需要单个步骤,Eclipse/CDT可以提供帮助,但前提是您要教它您使用的所有头文件和编译器标志。 |
![]() |
4
4
|
![]() |
5
3
如果使用gcc,还可以运行
|
![]() |
6
3
当鼠标指针悬停在标识符上(或其他方式)时,许多IDE将在编辑器中显示宏的扩展版本。我知道Eclipse/CDT可以做到这一点,而Visual Studio可以做到这一点(至少与2008年相比)。 如果您正在跟踪一个棘手的问题,让编译器生成预处理的输出可能会很有用,但是对于日复一日的使用来说,如果您只想知道屏幕上的代码在发生什么,使用IDE是一种可行的方法。 |
![]() |
7
3
gcc即使有-e也需要头文件的路径…就像-我找到你的头… 如果你有一个makefile,一般来说,你能做的就是用gcc-e来覆盖cc。 一般来说,cpp只是一个为预处理器向gcc添加一些标志的脚本,就像传统的…… |
![]() |
8
2
你只想跑
预处理器
编译器的阶段,负责扩展宏。为了
|
![]() |
9
2
尝试在源文件上运行cpp |
![]() |
10
1
您是否多次尝试运行gcc-e,直到不再有任何宏? |
![]() |
11
0
当被困在一个粗略的侧面时,尝试
生产
感谢“Mdematos”在 http://MicroChip.com/forums/m724722.aspx |
![]() |
Community wiki · C中有哪些耗时的操作? 1 年前 |
![]() |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
![]() |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
![]() |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |