8でわった余りは?
以下のような switch 文があった。
foo.bar の型は unsigned char だったはず。
この値は、8でわった余りだから 0から7になる、数学的には。
switch( (foo.bar--)%8){
case 0: x=1 ; break;
case 1: x=3 ; break;
case 2: x=5 ; break;
case 3: x=7 ; break;
case 4: x=9 ; break;
case 5: x=2 ; break;
case 6: x=8 ; break;
case 7: x=4 ; break;
default: x=0; break;
}default句は通らないはずなんだが、通った。
どうしてかだって?さあね、知らないよ。コンパイラのバグなんじゃないの。
あんまり信用してはいけないみたいだね。この製品。