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オプションで指定できる長さはこれより小さくなります。