
A2. 翻訳限界
C 言語の規格 C90 に於いて最低限保障されている限界値です。
| 内容 | 限界値 |
|---|---|
| ブロックの入れ子の深さ | 15 |
| #if の入れ子の深さ | 8 |
| 一つの宣言に於ける 「ポインター、配列、関数宣言子」の任意の組み合わせの総数。 それらの対象は 算術型、構造体型、共用体型、或いは不完全型を修飾する。 |
12 |
| 一つの宣言に於ける 小括弧を用いた宣言子の入れ子の深さ |
31 |
| 完全式に於ける 小括弧を用いた式の入れ子の深さ |
31 |
| 内部識別子(※1)或いはマクロ名の先頭からの有効文字数 | 31 |
| 外部識別子(※2)の先頭からの有効文字数 | 6 |
| 一つの翻訳単位に於ける外部識別子の数 | 511 |
| 一つのブロックで宣言される、 ブロック・スコープを持つ識別子の数 |
127 |
| 一つの翻訳単位に於いて 同時に定義可能なマクロ識別子の数 |
1,024 |
| 一つの関数定義に於ける仮引数の数 | 31 |
| 一つの関数呼び出しに於ける実引数の数 | 31 |
| 一つのマクロ定義に於ける仮引数の数 | 31 |
| 一つのマクロ呼び出しに於ける実引数の数 | 31 |
| 一つの論理ソース行(※3)に於ける文字数 | 509 |
| 前処理にて連結された後の、 文字列リテラル若しくはワイド文字列リテラルの文字数 |
509 |
| コンパイル環境に於ける一つのオブジェクトのバイト数 | 32,767 |
| #include にてインクルードされるファイルの入れ子の数 | 8 |
| 一つの switch 文に於ける case ラベルの数。 但し入れ子になった switch 文用の case ラベルは除く。 |
257 |
| 一つの構造体若しくは共用体のメンバーの数 | 127 |
| 一つの列挙体の列挙定数の数 | 127 |
| 一つの構造体若しくは共用体に於ける入れ子の数 | 15 |
| ※1 : 一翻訳単位で有効な識別子が該当。 ※2 : 別の翻訳単位でも有効な識別子が該当。 ※3 : 前処理にて複数行が連結された後の行を指す。 |
|
| Copyright (C) 2008 くろにし かきてる |