正如标题所述,我想知道使用之间有什么区别
#if
DoWork();
#else
DoAnotherWork();
#endif
Run Code Online (Sandbox Code Playgroud)
和
if (debug)
DoWork();
else
DoAnotherWork();
Run Code Online (Sandbox Code Playgroud)
Dan*_*din 11
if (debug)
DoWork();
else
DoAnotherWork();
Run Code Online (Sandbox Code Playgroud)
将编译上述代码,并在运行时检查条件.
#if
DoWork();
#else
DoAnotherWork();
#endif
Run Code Online (Sandbox Code Playgroud)
这些语句将在编译时检查.
因此,如果#if condition为true,则DoWork(); 将被编译,否则DoAnotherWork(); 将被编译.在前面的示例中,将编译包含if语句的所有代码.
请阅读预处理器指令
第一个版本使用预处理程序指令.这些是编译器本身仅编译某些语句的指令.生成的可执行文件将仅包含已编译的语句.因此,条件必须是可以在编译时进行评估的条件.
第二个版本在运行时进行评估.编译器将编译所有语句以及评估if条件的逻辑.所有语句都将包含在生成的可执行文件中.实际执行的语句将在代码运行时确定.
| 归档时间: |
|
| 查看次数: |
1879 次 |
| 最近记录: |