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 くろにし かきてる