Ben*_*ier 26
使用gcc -E仅运行预处理部分,例如给一个文件in.c
#if 0
0;
#endif
#if 1
1;
#endif
Run Code Online (Sandbox Code Playgroud)
赛跑
$ gcc -E in.c -o in.i
Run Code Online (Sandbox Code Playgroud)
产生一个文件 in.i
# 1 "in.cpp"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "in.cpp"
1;
Run Code Online (Sandbox Code Playgroud)
即被#if 0删除后面的部分.如果你有#include文件,他们也会被粘贴,所以我不确定这有多少帮助.
是的 - 几乎可以肯定,您的编译器在环境中提供了某些默认定义,您可以使用它们来打开和关闭不同系统的代码。 __GNUC__对 GCC 来说是一件好事。例如:
#ifdef __GNUC__
#define SOME_VALUE 12
#else
#define SOME_VALUE 14
#endif
Run Code Online (Sandbox Code Playgroud)
例如,如果您使用 GCC 编译该块,SOME_VALUE则将为12,如果您使用 MSVC 编译,则将为 14。此问题SOME_VALUE中提供了平台特定定义的列表。
| 归档时间: |
|
| 查看次数: |
32187 次 |
| 最近记录: |