ホームページ > バックエンド開発 > C++ > g のデフォルトはどの C 標準ですか?

g のデフォルトはどの C 標準ですか?

Barbara Streisand
リリース: 2024-11-12 12:19:01
オリジナル
435 人が閲覧しました

What C   Standard Does g   Default To?

g のデフォルトはどの C 標準ですか?

C コードをコンパイルしようとしたときに最近発生したコンパイル エラーにより、デフォルトの C 標準は何なのかという疑問が生じました。 g コンパイラを使用する場合。関連するコードには、ファイル ストリームと文字列の操作が含まれます。コマンド「g example.cpp」を使用してコンパイルすると、文字列と const char* 間の変換に関連するエラーが発生してコンパイルが失敗しました。ただし、コマンド「g -std=c 17 example.cpp」を使用すると問題は解決しました。

-std フラグが指定されていない場合に g で使用されるデフォルトの標準を調査するために、 g の特定のバージョンでサポートされている C 標準のデフォルト バージョン:

デフォルト標準の決定

  1. Bash: 次のコマンドを実行します:

    g++ -dM -E -x c++ /dev/null | grep -F __cplusplus
    ログイン後にコピー
  2. PowerShell: 次のコマンドを実行します:

    g++ -dM -E -x c++ NUL | Select-String __cplusplus
    ログイン後にコピー

    これらのコマンドの出力には、次のような行が表示されます:

    #define __cplusplus 199711L
    ログイン後にコピー

    「__cplusplus」に続く値は、デフォルトの C 標準バージョンを示します。この例では、C 98 (199711) です。

実際的な考慮事項

プログラマとして、-std フラグを指定するかどうか、または常に指定するかどうかは、いくつかの条件に依存します。要素:

  • プロジェクト要件: プロジェクトに特定の C 標準が必要な場合は、-std フラグを使用して明示的に設定する必要があります。
  • コンパイラーバージョン: g (4.7 ) の最新バージョンは、より広範囲の C 標準をサポートしています。古いバージョンを使用している場合は、-std フラグの指定が必要になる場合があります。
  • コードの移植性: コードが異なるコンパイラまたはプラットフォーム間で移植可能であることを意図している場合は、明示的に一貫した動作を確保するには、目的の C 標準を指定してください。

一般に、暗黙のデフォルト設定による予期しない動作を避けるために、-std フラグを使用して C 標準を明示的に指定することをお勧めします。 C 標準を制御することで、プログラマは最適なパフォーマンス、コードの正確性、移植性を確保できます。

以上がg のデフォルトはどの C 標準ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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