tom*_*afe 15 c enums switch-statement
如果检测到一些特殊情况,我正在使用switch语句提前从我的main函数返回.特殊情况使用枚举类型进行编码,如下所示.
typedef enum {
NEG_INF,
ZERO,
POS_INF,
NOT_SPECIAL
} extrema;
int main(){
// ...
extrema check = POS_INF;
switch(check){
NEG_INF: printf("neg inf"); return 1;
ZERO: printf("zero"); return 2;
POS_INF: printf("pos inf"); return 3;
default: printf("not special"); break;
}
// ...
return 0;
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是,当我运行它时,字符串not special被打印到控制台,主要功能的其余部分继续执行.
如何让switch语句在这里正常运行?谢谢!
lda*_*v1s 20
没有case标签.你goto现在有标签了.尝试:
switch(check){
case NEG_INF: printf("neg inf"); return 1;
case ZERO: printf("zero"); return 2;
case POS_INF: printf("pos inf"); return 3;
default: printf("not special"); break;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45779 次 |
| 最近记录: |