/Za、/Ze (言語拡張機能の無効化)
/Za コンパイラ オプションは、ANSI C または ANSI C++ と互換性のない言語構成要素にエラーを出力します。既定である**/Ze** コンパイラ オプションは Microsoft 拡張機能を有効にします。
/Za
/Ze
解説
[!メモ]
/Ze オプションの使用は推奨されていません。詳細については、「Deprecated Compiler Options」を参照してください。
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 開発環境でこのコンパイラ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。詳細については、「方法 : プロジェクト プロパティ ページを開く」を参照してください。
[C/C++] フォルダーをクリックします。
[言語] プロパティ ページをクリックします。
[言語拡張を無効にする] プロパティを変更します。
このコンパイラ オプションをコードから設定するには
- DisableLanguageExtensions を参照してください。