让我们说:
switch( choice ) { case A: stmt; do_stmt_related2A; break; case B: stmt; do_stmt_related2B; break; case C: something_different(); ... }
如何避免重复stmt代码?
但是有没有解决办法?
gcc扩展标签作为值看起来相当不错的情况.
switch( choice ) { do { case A: ptr = &&A_label; break; case B: ptr = &&B_label; } while(0); stmt; goto *ptr; case C: ...
有什么技巧可以在ANSI-C中做同样的事情吗?
编辑:当然我已经想到了功能/宏/内联.但还有什么?
这不是关于性能.只是为了教育目的;)