インテル® C++ コンパイラは、次のどちらの C コードにも対応できるように設定できます:
このコンパイラは、デフォルトでは、ANSI/ISO 標準に制限されずに拡張を受け入れるように設定されます。
インテル C++ コンパイラは、C 言語のコンパイルについて定めた ANSI/ISO 標準 (ISO/IEC 9899:1990) に準拠しています。ANSI/ISO 標準に準拠するためには、翻訳処理に要求する最低要件を満たしている必要があります。インテル C++ コンパイラは、翻訳処理に対して ANSI/ISO の要求している最低要件をすべて満たしています。
C 言語の ANSI/ISO 標準に準拠するためには、コンパイラに所定の事前定義済みマクロが付属していなければなりません。次の表は、同標準に従ってインテル C++ コンパイラに組み込まれたマクロの一覧です。
コンパイラは、標準から要求される事前定義マクロのほかにも事前定義マクロをいくつか用意しています。
マクロ | 値 |
---|---|
__DATE__ | コンパイルの日付。Mmm dd yyyy 形式の文字列リテラルです。 |
__FILE__ | コンパイルされるファイルの名前を表す文字列リテラルです。 |
__LINE__ | 現在の行番号。10 進数の定数で表現します。 |
__STDC__ | 名前 __STDC__ は、C 変換単位をコンパイルするときに定義されます。 |
__STDC_HOSTED__ | 整数 1 です。 |
__TIME__ | コンパイルの時間。hh:mm:ss 形式の文字列リテラルです。 |
このバージョンのインテル C++ コンパイラは、次の C99 機能をサポートします:
注
-restrict オプションは、ANSI 標準規格で定義された restrict キーワードを認識します。restrict キーワードでポインタを限定することによって、ポインタ経由でアクセスされるオブジェクトが、与えられたスコープ内では、当該ポインタのみによってアクセスされることを宣言できます。 この制限が正しい場合のみこの restrict キーワードを使用することが重要です。この場合、プログラムの正当性には影響を与えませんが、より良い最適化が可能になる場合があります。
次の C99 機能はサポートされていません: