ホームページ > バックエンド開発 > C++ > コンパイラの実装されている C 標準バージョンを確認するにはどうすればよいですか?

コンパイラの実装されている C 標準バージョンを確認するにはどうすればよいですか?

DDD
リリース: 2024-12-13 15:59:11
オリジナル
173 人が閲覧しました

How Can I Determine the Implemented C   Standard Version of My Compiler?

実装されている C 標準バージョンの決定

コンパイラの C 標準実装を決定することは、互換性を確保し、最新の言語機能を利用するために重要です。 。 C 98 や C 03 など、いくつかの C 標準がリリースされています。

標準バージョンを識別する 1 つの方法は、マクロ __cplusplus を確認することです。

__cplusplus Macro

Bjarne Stroustrup の C 0x FAQ によると、 __cplusplus マクロは、C 11 以降では 199711L より大きい値に設定されます。ただし、一部のコンパイラはこのマクロを正しく設定しない場合があります。

GCC

gcc には、言語バージョンに関係なく、__cplusplus を 1 に設定した履歴があります。この問題は gcc 4.7.0 で解決されました。

MSVC

MSVC も __cplusplus を 199711L として誤って定義します。正しい値を取得するには、コンパイラ フラグに /Zc:__cplusplus を追加するか、MSVC 固有のマクロ _MSVC_LANG を確認してください。

Expected __cplusplus Values

  • C pre -C 98: 1
  • C 98: 199711L
  • C 98 TR1: __cplusplus
  • C 11: 201103L
  • C 14: 201402L
  • C 17: を使用して決定できません。 201703L
  • C 20: 202002L
  • C 23: 202302L

その他のメソッド

__cplusplus が不足または使用できない場合、他のアプローチinclude:

  • コンパイラ固有のマクロ: コンパイラ定義のマクロを検査すると、実装された標準バージョンが判明する場合があります。
  • Boost.Config:このライブラリは、特定の C 機能をチェックするためのマクロを提供します。
  • 機能評価: 特定の機能を利用するコードを実行すると、その機能の可用性が決まり、その結果、実装された標準バージョンが決まります。

すべてのコンパイラが C 標準のすべての機能を完全に実装しているわけではないことに注意することが重要です。信頼性の高いコード実行を保証するには、コンパイラーの互換性と機能サポートを注意深く検査する必要があります。

以上がコンパイラの実装されている C 標準バージョンを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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