是否有任何带有扩展的C编译器能够在每个case语句结束时自动中断(类似于Swift可用的)或未来C规范中可用的更改开关?
对此非常感兴趣,以避免在广泛的交换机情况下出现混乱。
我觉得这个工作“没问题”,但更喜欢这个行为更清楚。
#define case break; { } case
#define switch_break switch
switch_break (action)
{
default: printf ("Unknown action");
case action_none : // Nothing
case action_copy : doCopy ();
case action_paste : doPaste ();
case action_none : break; /* C requires a statement after final case */
}
答案 0 :(得分:0)
如果您不想每次都写break
,请将switch
语句包装在函数中。然后break
可以替换为return
语句。例如
int switch_func(char c) {
switch(c) {
case 'a': return 1;
case 'b': return 3;
case 'c': return 5;
case 'd': return 7;
. . .
default: return 0;
}
}
仅在存在返回值时减少代码。