次のようなコードがあります。
someFunc(value)
{
switch(value){
case 1:
case 2:
case 3:
#ifdef SOMEMACRO
case 4:
case 5:
#endif
return TRUE;
}
return FALSE;
}
SOMEMACRO が定義されており、値が 4 であるとしましょう。ケース 4 と 5 がスキップされ、代わりに FALSE が返されるのはなぜですか? :(
デフォルトのケースがないためですか、それとも switch ステートメントで ifdef を使用することが許可されていないためですか?