#pragma langlvl ディレクティブはコンパイルのために C 言語レベルを選択します。
>>-#--pragma--langlvl--(----language----)----------------------><
language の値は、以下の通りです。
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++ 標準に準拠するコンパイル。 |
デフォルトの言語レベルは、コンパイラー呼び出しに使用するコマンドによって異なります。
このプラグマは 1 つのソース・ファイルの中で 1 回しか指定できず、またソース・ファイルの中のコメント以外のステートメントの前に指定する必要があります。
コンパイラーは、ヘッダー・ファイル内の事前定義マクロを使用して、指定された言語レベルを定義するための宣言と定義を使用できるようにします。
このディレクティブはプリプロセッサーの振る舞いを動的に変更することができます。その結果、-E コンパイラー・オプションを指定してコンパイルすると、-E オプションを指定してコンパイルしなかったときに作成されるものと異なる結果が作成される可能性があります。
関連情報