kre*_*tar 0 c++ macros switch-statement
我有一些看起来像这样的代码:
someFunc(value)
{
switch(value){
case 1:
case 2:
case 3:
#ifdef SOMEMACRO
case 4:
case 5:
#endif
return TRUE;
}
return FALSE;
}
Run Code Online (Sandbox Code Playgroud)
定义SOMEMACRO,假设值为4 ..为什么跳过案例4和5而返回FALSE?:(
是因为我没有默认情况,或者我不允许在switch语句中使用ifdef?
请尝试以下方法:
someFunc(value)
{
switch(value){
case 1:
case 2:
case 3:
#ifdef SOMEMACRO
#error macro is defined
case 4:
case 5:
#else
#error macro is not defined
#endif
return TRUE;
}
return FALSE;
}
Run Code Online (Sandbox Code Playgroud)
编译它,看看编译器给你的两个错误中的哪一个.
| 归档时间: |
|
| 查看次数: |
1779 次 |
| 最近记录: |