Cod*_*lus 1 c c++ debugging command-line
通过命令行运行程序时,如何更改布尔宏的值?例如,假设我的cpp文件中包含以下宏,则将其命名为MyCpp.cpp
#define DEBUG 1
Run Code Online (Sandbox Code Playgroud)
运行程序时如何更改此设置?通过命令行:
g++ -Wall -Wextra -o MyCpp MyCpp.cpp
Run Code Online (Sandbox Code Playgroud)
我很确定您指定了某种命令行选项,这会响起钟声吗?另外,我不想使用argv[]
首先,更改您的源代码:
#ifndef DEBUG
# define DEBUG 1
#endif
Run Code Online (Sandbox Code Playgroud)
现在您可以在命令行中说:
#ifndef DEBUG
# define DEBUG 1
#endif
Run Code Online (Sandbox Code Playgroud)
命令行参数-DFOO=bar与放入#define FOO bar源代码的作用相同。您需要#ifndef警惕,以避免非法重新定义宏。
有时人们使用辅助宏来阻止定义另一个宏:
#ifndef SUPPRESS_FOO
# define FOO
#endif
// ... later
#ifdef FOO
// ...
#endif
Run Code Online (Sandbox Code Playgroud)
现在说-DSUPPRESS_FOO来不定义FOO代码...
| 归档时间: |
|
| 查看次数: |
1874 次 |
| 最近记录: |