私が見たほとんどすべての (比較的) 新しい c プログラミングに関する本は、C99 標準に準拠していないように見えるか、追加の章でカバーしています。Java のバックグラウンドを持つ私にとって、C99 標準は移行 (まあ、まだ移行中です ^^) をはるかに簡単にしてくれました。これはおそらく他の言語にも当てはまります。
C99 はまだほとんどの C 開発者に届いていないようです。しかし、なぜ?
簡単な答え:コンパイラ サポートのインストールが遅く、c プログラマーは保守的で、動作をゆっくりと変更します。
主な理由は、MSVC が C99 をサポートしようとしておらず、今後もサポートしない可能性が高いためだと強く思います。同じボートにいくつかの組み込みコンパイラがありますが、それらは個別に重要なほど一般的ではありません。私の知る限り、他の誰もが少なくともC99を可能な限り実装しようとしています。
実際には、C99 の特定の機能を使用しない理由はあまりありませんが、C 標準を 1 つだけ学習して作成する場合は、C89 でなければなりません。
さらに、「わかりました。2 つの異なる標準があり、3 つの異なる色のテキストを使用します。1 つは C89 用、もう 1 つは C99 用、そして両方に1つ」。また、C89 について書いてから C99 に関する付録に追加するよりも、C99 について本全体を書いてから、C89 に関する付録で述べたことの多くを「取り戻す」のはおそらく難しいでしょう。 .
すべて憶測ですが。本当に、あなたが読んでいる本の著者に尋ねる必要があります (または、場合によっては、プログラミングの本能に逆らって、序文を読んでください;-))
既存のコード ベースで新しいコンパイラに切り替えるリスクは一般に知られていませんが、非常に苦痛を伴う可能性があります。バグや変更を取り除くために数か月の時間がある場合にのみ切り替えるのが最も賢明です。また、非常に古いコード ベースの場合は、まったく切り替えない方が賢明な場合もあります。
C を使用するプロジェクトの大半は、C99 に切り替える気はまったくないに違いありません。なぜなら、大規模な既存のコード ベースにはメリットがほとんどなく、潜在的なデメリットがかなりあるからです。私はある大きなソフトウェア ハウスで働いていました。この会社は、コンパイラをコードと一緒にソース ツリーにチェックインし、製品のコンパイラを切り替えることは決してありませんでした。