柴田望洋先生「新・明解C言語入門編 第2版」の第1版からの差分
漸くだがとても喜ばしいこと
ただもうC11でよかったのでは
JISになってないから避けた?!
コメントが/* ~ */から //~ になった
変数宣言の位置が使用の直前になった
特にforではfor(int i=0; i<N; i++)が標準になった
整数除算の商は「0方向に丸める」であることが明記された(p.26 Column2-1)
可変長配列および配列の指示付き初期化子について解説がある(p.136 Column 5-2)
ただし可変長配列について推奨しないこと、配列の指示付き初期化子はC++と互換性がないことが明記されている
一方C++20と互換の「構造体の指示付き初期化子」は記述がない
こっちは書いて欲しかった
インライン関数に触れられている(p.165 Column6-1)
整数型にlong long等があることが明記された(p.187 Table 7-2)
_Bool型やstdbool.h, stdint.hについて触れられている(p.197 Column7-3)
ただしC++との関係については触れられてない
stdint.hについても具体的な話はない
最近はビット幅を意識するプログラミングが主流なので書いて欲しかった
浮動小数点型にlong doubleがあることが明記された(p.214)
ただしfloat, double, long doubleの精度については実装依存としか書かれてない
多くの人はx86-64で使用するので80bit精度のlong doubleの話はしても良かったかも
変換指定子%a(16進浮動小数点表記)が解説されている(p.378)
型修飾子restrictが書かれている(p.383 Column13-2)
しかし意味は解説されていない…
コンパイラの最適化を助ける意味しか無く、読むことはあっても書くことはないので書かなくて良かったのでは?
MISRA-C 2012では使用が禁止されている