Visual Studio 2017 を使用することをお勧めします

/Za、/Ze (言語拡張機能の無効化)

 

Visual Studio 2017 RC の最新のドキュメントの詳細については、Visual Studio 2017 RC ドキュメントをご参照ください。

/Za コンパイラ オプションは、ANSI C または ANSI C++ と互換性のない言語構成要素にエラーを出力します。 既定である/Ze コンパイラ オプションは Microsoft 拡張機能を有効にします。

/Za  
/Ze  

System_CAPS_ICON_note.jpg メモ

/Ze オプションの使用は推奨されていません。 詳細については、「Deprecated Compiler Options in Visual C++ 2005」を参照してください。

Visual C++ コンパイラでは、ANSI C または ANSI C++ 規格以外の機能を多数用意しています。 これらの機能はまとめて、C および C++ の Microsoft 拡張機能として知られています。 これらの拡張機能は、/Ze オプションを指定すると使用可能になり、/Za オプションを指定すると使用不能になります。 詳細については、「Microsoft C/C++ の拡張機能」を参照してください。

プログラムをほかの環境に移植する予定がある場合は、拡張機能を無効にします。 このオプションを選択してコンパイルを行うと、拡張キーワードが単に識別子として処理されるため、Microsoft のその他の拡張機能が無効になり、C プログラム用の組み込みマクロとして __STDC__ マクロが自動的に定義されます。

その他のコンパイラ オプションを /Za と共に使用すると、コンパイラが ANSI への準拠を確保する方法に影響が及ぶことがあります。 たとえば、/Za/fp (浮動小数点の動作の指定) を併用すると、予期しない動作が発生する可能性があります。

/Za の標準動作を指定する方法については、/Zc コンパイラ オプションに関するトピックを参照してください。

Visual C++ の準拠の問題の詳細については、「Visual C++ での互換性と準拠の問題」を参照してください。

Visual Studio 開発環境でこのコンパイラ オプションを設定するには

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、「方法 : プロジェクト プロパティ ページを開く」を参照してください。

  2. [C/C++] フォルダーをクリックします。

  3. [言語] プロパティ ページをクリックします。

  4. [言語拡張を無効にする] プロパティを変更します。

このコンパイラ オプションをコードから設定するには

コンパイラ オプション
コンパイラ オプションの設定

表示: