-strict_std【V1.06以降】/-ansi【V1.05以前】


Cソース・プログラムを言語規格に厳密に処理します。

[指定形式]

-strict_std【V1.06以降】
-ansi      【V1.05以前】

 

-

省略時解釈

従来のC言語の仕様との両立性を持たせ,警告を出力して処理を続行します。C90では,C99で追加された仕様の一部も受容します。

[詳細説明]

-

Cソース・プログラムを-langオプションで指定した言語規格に厳密に処理し,規格に反する記述に対してエラーや警告を出力します。

-

本オプション指定時は,マクロ名__STDC__を,値が1のマクロとして定義します。

-

言語規格に厳密なコンパイル時の処理は,以下のようになります。

-

C90準拠時

-

_Bool型

エラーとなります。

-

long long型

エラーとなります。

-

#行番号

エラーとなります。

本オプションを指定しない場合は,“#line 行番号”と同様に扱います。

-

型変換

関数ポインタをvoidポインタへ代入するなどの処理がエラーとなります。

-

2進定数

エラーとなります【V1.06以降】

-

C99準拠時【V1.06以降】

-

#行番号

エラーとなります。

本オプションを指定しない場合は,"#line 行番号"と同様に扱います。

-

型変換

関数ポインタをvoidポインタへ代入するなどの処理がエラーとなります。

-

2進定数

エラーとなります。