1.2 コンパイラのソース言語モード

コンパイラを使用すると、さまざまな C および C++ ソースコードをコンパイルできます。

ISO C90
コンパイラは、1990 C 標準および追補表の定義に従って C をコンパイルします。
  • ISO/IEC 9899:1990:The 1990 International Standard for C
  • ISO/IEC 9899 AM1 : 1995 Normative Addendum 1 で、wchar.h から wtype.h までの国際文字のサポートが追加されました。
ISO C99
コンパイラは、1999 C 標準および追補表の定義に従って C をコンパイルします。
  • ISO/IEC 9899:1999:The 1999 International Standard for C
  • ISO/IEC 9899:1999/Cor 2:2004:Technical Corrigendum 2
ISO C++03
コンパイラは、2003 標準の定義に従って C++ をコンパイルします(ワイドストリームとエキスポートテンプレートを除く)。
  • ISO/IEC 14882:2003:The 2003 International Standard for C++
ISO C++11
コンパイラは、2011 標準の定義に従って、C++11 のサポートされている機能をコンパイルします。
  • ISO/IEC 14882:2011:The 2011 International Standard for C++
コンパイラは、C および C++ 言語に対する多くの言語拡張をサポートしています。たとえば、一部の GNU コンパイラ拡張機能がサポートされます。コンパイラには、ソース言語への準拠の程度に対応したいくつかのモードがあります。
厳密モード
厳密モードでは、ソース言語に対応する言語標準への準拠が強く要求されます。
厳密モードでコンパイルするには、コマンドラインオプション --strict を使用して下さい。
GNU モード
GNU モードでは、ソース言語の GNU コンパイラ拡張機能がすべて使用可能になります。
GNU モードでコンパイルする場合は、コンパイラの --gnu オプションを使用して下さい。
本書で使用する用語について説明します。
C90
ISO C90 コンパイラで、ARM 拡張機能と組み合わせて使用します。
C90 コードをコンパイルする場合は、--c90 オプションを使用して下さい。これがデフォルトです。
厳密な C90
1990 C 標準および追補表の定義に従った C です。
厳密な C90 コードを強制するには、コンパイラオプション --C90 --strict を使用します。C90 がデフォルトであるため、--C90 は省略できます。
C99
ISO C99 コンパイラで、ARM および GNU 拡張機能と組み合わせて使用します。
C99 コードをコンパイルする場合は、--c99 オプションを使用して下さい。
厳密な C99
1999 C 標準および追補表の定義に従った C です。
厳密な C99 コードをコンパイルするには、コンパイラオプション --c99 --strict を使用します。
標準 C
C90 または C99 を適宜意味します。
C
C90、厳密な C90、C99、厳密な C99、および標準 C の総称です。
C++03
ワイドストリームとエキスポートテンプレート機能を除いた ISO C++03 です。ARM 拡張機能との組み合わせは任意です。
C++03 コードをコンパイルする場合は、--cpp コンパイラオプションを使用して下さい。
古いコンパイラバージョンでコンパイルされた C++03 コードとのバイナリ互換性を最大限に高めるには、コンパイラオプション --cpp --cpp_compat を使用します。
厳密な C++03
ワイドストリームとエキスポートテンプレートを除いた ISO C++03 です。
厳密な C++03 コードをコンパイルするには、コンパイラオプション --cpp --strict を使用します。
C++11
ワイドストリームとエキスポートテンプレート機能を除いた ISO C++11 です。ARM 拡張機能との組み合わせは任意です。
C++11 コードをコンパイルする場合は、--cpp11 コンパイラオプションを使用して下さい。
C++ 2003 標準にコンパイルされたコードとの互換性を最大限に高める C++11 コードのサブセットをコンパイルするには、コンパイラオプション --cpp11 --cpp_compat を使用します。
厳密な C++11
ワイドストリームとエキスポートテンプレートを除いた ISO C++11 です。
厳密な C++11 コードをコンパイルするには、コンパイラオプション --cpp11 --strict を使用します。
標準 C++
厳密な C++03 または厳密な C++11 を適宜意味します。
C++
C++03、厳密な C++03、C++11、および厳密な C++11 の総称です。
関連する概念
5.59 C99 の新しい言語機能
5.64 C99 の 16 進浮動小数点数
関連する参考文書
1.3 言語拡張機能
1.4 言語標準の準拠
15.1 実装定義
16.4 標準 C++ ライブラリの実装定義
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.