2006-08-19 クイズ 2.7 prog (gcc 拡張でない)C99 として正しい? enum { k = 0 && (1 / 0) }; void f(void g(void *())) { int a[][3] = { 1, 2, 3, 4, 5, }; char s[] = { "Hello" }, c = { 1 }; }ばっちり。*1 *1:k:定数式でも && は短絡 [JIS X3010:2003, 6.6]。f:関数の仮引数では、(配列がポインタに読み替えられるのと同様に)関数は関数ポインタに読み替えられる [6.7.5.3]。a:部分配列を囲う波括弧は不要 [6.7.8]。c と s:スカラー変数の初期値、および文字配列を初期化する文字列リテラルは、波括弧で囲んでも構わない [6.7.8]。