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 次 |
最近记录: |