Translation limits
The following translation limits
are defined for this implementation:
Table A-9 Defined translation limits
-------------------------------------------------------------
Item Actual Minimum
Acceptable
-------------------------------------------------------------
nesting levels of compound >=256 15
statements, iteration control
structures, and selection
control structures.
nesting levels of conditional >=32 8
inclusion
pointer, array, and function >=32 12
declarators (in any
combinations) modifying an
arithmetic, a structure, a
union, or an incomplete type in
a declaration
declarators nested by >=32 12
parentheses within a full
declarator
expressions nested by >=128 32
parentheses within a full
expression
significant initial characters >=1024 31
in an internal identifier or a
macro name
significant initial characters >=1024 6
in an external identifier
external identifiers in one >=1024 511
translation unit
identifiers with block scope >=2048 127
declared in one block
macro identifiers simultaneously >=4096 1024
defined in one translation unit
parameters in one function >=256 31
definition
arguments in one function call >=256 31
parameters in one macro >=128 31
definition
arguments in one macro >=128 31
invocation
characters in a logical source >=4096 509
line
characters in a character string >=4096 509
literal or wide string literal
(after concatenation)
bytes in an object (in a hosted >=65535 32767
environment)
nesting levels for #include'd >=16 8
files
case labels for a switch unlimited 257
statement (excluding those for
any nested switch statements)
members in a single structure or >=512 127
union
enumeration constants in a >=512 127
single enumeration
levels of nested structure or >=64 15
union definitions in a single
struct-declaration-list
functions that can be registered 37 32
by atexit().