#pragma langlvl

説明

#pragma langlvl ディレクティブはコンパイルのために C 言語レベルを選択します。

構文

構文図を読む構文図をスキップする>>-#--pragma--langlvl--(----language----)----------------------><
 

language の値は、以下の通りです。

C のみC プログラムの場合、以下のいずれかの値を language に指定できます。

classic stdc89 以外のプログラムのコンパイルを許可し、K&R レベルのプリプロセッサーに厳密に準拠します。
extended RT コンパイラーおよび classic との互換性を提供します。この言語レベルは C89 に基づいています。
saa 現行の SAA C CPI 言語定義に準拠するコンパイル。これは現在 SAA C レベル 2 です。
saal2 SAA C レベル 2 CPI 言語定義に準拠するコンパイル。これにはいくつかの例外があります。
stdc89 ANSI C89 標準に準拠するコンパイルで、ISO C90 とも呼ばれます。
stdc99 ISO C99 標準に準拠するコンパイル。
extc89 コンパイルは、ANSI C89 標準に準拠しており、インプリメンテーション固有の言語拡張を受け入れます。
extc99 コンパイルは、ISO C99 標準に準拠しており、インプリメンテーション固有の言語拡張を受け入れます。

extended コンパイルは strict98 に基づいていますが、拡張言語フィーチャーを適合させるにはいくつかの相違があります。
strict98 C++ プログラムの ISO C++ 標準に準拠するコンパイル。

デフォルト

デフォルトの言語レベルは、コンパイラー呼び出しに使用するコマンドによって異なります。

呼び出し
デフォルト言語レベル
xlc
extc89
cc
extended
c89
stdc89
c99
stdc99

このプラグマは 1 つのソース・ファイルの中で 1 回しか指定できず、またソース・ファイルの中のコメント以外のステートメントの前に指定する必要があります。

コンパイラーは、ヘッダー・ファイル内の事前定義マクロを使用して、指定された言語レベルを定義するための宣言と定義を使用できるようにします。

このディレクティブはプリプロセッサーの振る舞いを動的に変更することができます。その結果、-E コンパイラー・オプションを指定してコンパイルすると、-E オプションを指定してコンパイルしなかったときに作成されるものと異なる結果が作成される可能性があります。

関連情報