標準への準拠を維持しながら #define を使用して C キーワードを再定義できますか?

Susan Sarandon
リリース: 2024-11-20 15:52:16
オリジナル
269 人が閲覧しました

Can You Redefine C   Keywords Using #define While Maintaining Standards Compliance?

#define を使用したキーワードの再定義: C での標準への準拠

C プリプロセッサでは、#define ディレクティブを使用して言語キーワードを再定義できます。ただし、標準への準拠により、この慣行には制限が課せられます。

標準の制限

  • 翻訳単位の包含: §17.4.3.1.1/2 によると、翻訳標準ライブラリヘッダーを含むユニットは、そのヘッダーで宣言または定義された名前に対してマクロを定義できません。キーワード.
  • C 0x (撤回ルール): C 0x で提案された変更では、当初、#define を使用したキーワードの再定義が禁止されていました (§17.6.3.3.1)。ただし、このルールは撤回され、既存の制限はそのまま残ります。

プログラムの適合性

言語キーワードを再定義する C プログラムは、標準ライブラリを含む翻訳単位内の標準ルールに違反します。ヘッダー。したがって、そのようなプログラムは標準に準拠しているとは言えません。

結論

#define を使用したキーワードの再定義は C では技術的に可能ですが、標準に準拠したプログラムでは避けるべきです。 C 標準によって課される制限は、コードの移植性を確保し、標準ライブラリや、キーワードに事前定義された意味があることを期待する他のコードとの競合を防ぐのに役立ちます。

以上が標準への準拠を維持しながら #define を使用して C キーワードを再定義できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート