C の標準規格との適合性

インテル® C++ コンパイラは、次のどちらの C コードにも対応できるよう設定できます。

このコンパイラは、デフォルトでは、ANSI/ISO 標準に制限されずに拡張を受け入れるように設定します。

ANSI/ISO標準準拠のC言語について

インテル C++ コンパイラは、C 言語のコンパイルについて定めた ANSI/ISO 標準( ISO/IEC 9899:1990 )に準拠しています。ANSI/ISO 標準に準拠するためには、翻訳処理に要求する最低要件を満たしている必要があります。インテル C++ コンパイラは、翻訳処理に対してANSI/ISO の要求している最低要件をすべて満たしています。

コンパイラ付属のマクロ

C 言語の ANSI/ISO 標準に準拠するためには、コンパイラに所定の事前定義済みマクロが付属していなければなりません。次の表は、同標準に従ってインテル C++ コンパイラに組み込まれたマクロの一覧です。

コンパイラには、標準から要求される事前定義マクロのほかにも事前定義マクロをいくつか用意しています。

マクロ 説明
__cplusplus

C++ 変換単位をコンパイルするときに、名前__cplusplusが定義されます。

__DATE__ Mmm dd yyyy という形式の文字列リテラルとしてコンパイルの日付を表現します。
__FILE__ コンパイルされるファイルの名前を表す文字列リテラル。
__LINE__ 現在の行番号。 10進数の定数で表現します。
__STDC__ C 変換単位をコンパイルするときに、名前 __STDC__ が定義されます。
__TIME__ コンパイル時刻。hh:mm:ssという形式の文字列リテラルとして表現します。

C99 サポート

-c99[-] オプションを使用することによって、このバージョンのインテル C++ コンパイラは、次のC99機能をサポートします。

-restrictオプションで、ANSI 標準規格で定義されたrestrict キーワードを認識します。 restrict キーワードでポインタを限定することによって、ポインタ経由でアクセスされるオブジェクトが、与えられたすコープ内では、当該ポインタのみによってアクセスされることを宣言できます。この宣言が正しい場合のみこの restrict キーワードを使用することが重要です。この場合、プログラムの正当性には影響を与えませんが、より良い最適化が可能になる場合があります。

これらの機能はサポートされていません。