1.4.1 コンパイラの最大値

ソースプログラムを作成する際は、この翻訳限界の範囲で作成してください。

表 1.1

コンパイラの翻訳限界

No.

分類

項目

翻訳限界

1

起動

defineオプションで指定可能なマクロ名総数

制限なし(メモリ容量に依存)

2

ファイル名の文字数

制限なし(OSに依存)

3

ソース

プログラム

1行の文字数

32768文字

4

1ファイルあたりのソースプログラムの行数

制限なし(メモリ容量に依存)

5

コンパイル可能なソースプログラムの総行数

制限なし(メモリ容量に依存)

6

プリプロ

セッサ

#include文のネストの深さ

制限なし(メモリ容量に依存)

7

#define文のマクロ名総数

制限なし(メモリ容量に依存)

8

マクロ定義、マクロ呼び出しのパラメータの個数

制限なし(メモリ容量に依存)

9

マクロ名の再置き換えの数

制限なし(メモリ容量に依存)

10

条件コンパイルのネストのレベル数

制限なし(メモリ容量に依存)

11

#if, #elif文で指定可能な演算子、被演算子の合計数

制限なし(メモリ容量に依存)

12

宣言

関数定義の個数

制限なし(メモリ容量に依存)

13

外部結合となる識別子(外部名)の数

制限なし(メモリ容量に依存)

14

1関数内で有効な識別子(内部名)の数

制限なし(メモリ容量に依存)

15

基本型を修飾するポインタ、配列、および関数宣言子の数

16個

16

配列の次元数

6次元

17

配列・構造体のサイズ

2147483647バイト

18

文

複文のネストの深さ

制限なし(メモリ容量に依存)

19

繰り返し文(while文、do文、for文)、選択文(if文、switch文)の組み合わせによるネストの深さ

4096レベル

20

1関数内で記述可能な複文の数

2048個

21

1関数内で指定可能なgotoラベルの数

2147483646個

22

switch文の数

2048個

23

switch文のネストの深さ

2048レベル

24

1つのswitch文内で指定可能なcaseラベルの数

2147483646個

25

for文のネストの深さ

2048レベル

26

式

文字列の文字数

32766文字

27

関数定義、関数呼び出しでパラメータの個数

2147483646個

28

1つの式で指定可能な演算子と被演算子の合計数

約500個

29

標準

ライブラリ

open関数で一度にオープンできるファイルの数

可変*1

30

セクション

セクション名長*2

8146文字

31

1ファイルあたりの#pragma sectionで指定できるセクション数

2045個

32

セクションの最大サイズ

4294967295バイト

33

出力ファイル

アセンブリソースとして出力できる1行の最大文字数

8190文字

注 1.

詳細は「8.3.2 初期設定」を参照してください。

注 2.

オブジェクト生成時に用いるアセンブラの1行文字数の制限を受けるため、#pragma sectionやsectionオプションで指定できる長さはこれより小さくなります。