C 前処理でのキーワードの再定義: 標準への準拠
言語キーワードを再定義するための #define の使用は、開発者コミュニティで議論を引き起こしました。この記事では、この慣行に関する標準について詳しく説明します。
再定義されたキーワードとの標準準拠
C 標準 (§17.4.3.1.1/2) によると、翻訳単位に標準ライブラリ ヘッダーが含まれている場合、標準準拠の C プリプロセッサはキーワードを再定義できません。この制限は、標準ヘッダーのない翻訳単位では解除されます。
C 0x では、前述の段落の 2 番目の文がキーワードの再定義を完全に禁止しているように見え、混乱を引き起こしていました。ただし、Ken Bloom 氏は、ルールは C 0x でも変わっていないことを明らかにしました。テキストは誤解を招く可能性がある方法で再配置されているだけです。
不適合による影響
C プログラムが言語キーワードを再定義しても、本質的には再定義されません。不適合になる。ただし、異なるコンパイラやプラットフォーム間での移植性は保証されていません。さらに、このようなプログラムは、元のキーワード定義を期待する標準ライブラリ ヘッダーと対話しようとすると、予期しない動作やエラーが発生する可能性があります。
以上がC プリプロセッサはキーワードを再定義しても標準に準拠できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。