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

コンパイラが使用している C 標準を確認するにはどうすればよいですか?

DDD
リリース: 2024-12-30 00:44:08
オリジナル
710 人が閲覧しました

How Can I Determine the C   Standard My Compiler Is Using?

コンパイラによって実装された C 標準の決定

コンパイラによって使用される C 標準のバージョンを検出すると、互換性の確保と効率的なコード開発に役立ちます。これを実現する方法は次のとおりです。

__cplusplus マクロの使用

C 11 では、現在の C 標準を反映する __cplusplus マクロが導入されました。たとえば、C 11 では、__cplusplus は 201103L になります。ただし、gcc や MSVC などの一部のコンパイラでは、このマクロが常に正しく設定されるとは限りません。

コンパイラ固有のチェック

__cplusplus が十分でない場合は、コンパイラ固有のチェックに頼ってください。小切手。たとえば、clang は __clang_major__、__clang_minor__、および __clang_patchlevel__ を定義します。同様に、MSVC は _MSC_VER を定義します。

機能の比較

もう 1 つのアプローチは、実装された機能を既知の C 標準と比較することです。 Cppcheck や Static ReSharper などのツールは、コードを分析してサポートされている機能をレポートし、実装されている標準を識別できるようにします。

Boost.Config

Boost.Config は、次のことを示す特定のマクロを提供します。 BOOST_CXX_STD_11、BOOST_CXX_STD_14 などの C 標準バージョンon.

古いコンパイラ

前述の方法をサポートしていない可能性がある古いコンパイラの場合は、サポートされている機能を検出して動作するためにコンパイラ バージョン固有のハックまたは Boost.Config を使用することを検討してください。

機能固有チェック

機能を正確にチェックするには、コンパイラのビルド システムの使用を検討してください。特定の機能を使用するコードを実行し、コンパイル結果を調べます。 Autoconf は、このアプローチでよく使用されるツールです。

コンパイラ サポート マトリクス

Stdcxx Wiki は、C 0x 機能のコンパイラ サポートの包括的なマトリクスを提供します。ただし、より詳細な分析を行うには、手動による特徴チェックをお勧めします。

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

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