ホームページ >バックエンド開発 >C++ >標準への準拠を維持しながら #define を使用して C キーワードを再定義できますか?

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

Susan Sarandon
Susan Sarandonオリジナル
2024-11-20 15:52:16364ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。