VS2005 のように、すべてのコンパイラが switch ステートメントのラベルの前のコードを静かに無視するかどうか疑問に思っています。
これが私が求めているものです:
#define CASE break; case
そう、
switch (i) {
CASE 0: print("0");
CASE 1: print("1");
}
に変わるだろう
switch (i) {
break;
case 0: print("0"); break;
case 1: print("1");
}
標準から、最初の「ブレーク」(および存在する場合は他のコード) が実行されないことは明らかです。標準はそのようなコードの存在を否定していませんが、実際のコンパイラについては確信が持てません。