g で使用されるデフォルトの C 標準を決定するにはどうすればよいですか?

DDD
リリース: 2024-11-17 06:08:03
オリジナル
714 人が閲覧しました

How to Determine the Default C   Standard Used by g  ?

C での C 標準検出

C では、標準コンパイラのバージョンがコードの動作と互換性に影響を与える可能性があります。 g を使用してコンパイルする場合、デフォルトの標準を理解することが重要です。

次のコード スニペットを検討してください:

#include <fstream>
#include <string>

int main() {
    std::string filename = "input.txt";
    std::ifstream in(filename);

    return 0;
}
ログイン後にコピー

g example.cpp コマンドを使用して Windows でこのコードをコンパイルすると、 std::string から const char* への変換に関連するリンカー エラーが原因で失敗します。ただし、 g -std=c 17 example.cpp を使用して特定の C 標準を指定すると、この問題は解決します。

g で使用されるデフォルトの C 標準を確認するには、次のコマンドを実行できます。

g++ -dM -E -x c++ /dev/null | grep -F __cplusplus
ログイン後にコピー

たとえば、Ubuntu 4.8.4 バージョンの g でこのコマンドを使用すると、次のようになります。出力:

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

これは、このバージョンの g のデフォルトの C 標準が C 98 であることを示します (199711L は、C 標準の 1997 年 11 月改訂版を表します)。

常に次のようにすることをお勧めします。 g を使用してコンパイルするときに、目的の C 標準を明示的に指定します。これにより、コードが意図した標準に準拠していることが保証され、時代遅れの標準や望ましくない標準の使用によって生じる可能性のある互換性の問題が回避されます。

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

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