Datasheet
C and C++ Compiler Implementation Limits
D-2 Copyright © 1999-2001 ARM Limited. All rights reserved. ARM DUI 0067D
D.1 C++ ISO/IEC standard limits
The ISO/IEC C++ standard recommends minimum limits that a conforming compiler
must accept. You must be aware of these when porting applications between compilers.
A summary is given in Table D-1. A limit of memory indicates that no limit is imposed
by the ARM compilers, other than that imposed by the available memory.
Table D-1 Implementation limits
Description Recommended ARM
Nesting levels of compound statements, iteration control structures, and
selection control structures.
256 memory
Nesting levels of conditional inclusion. 256 memory
Pointer, array, and function declarators (in any combination) modifying an
arithmetic, structure, union, or incomplete type in a declaration.
256 memory
Nesting levels of parenthesized expressions within a full expression. 256 memory
Number of initial characters in an internal identifier or macro name. 1024 1024
Number of initial characters in an external identifier. 1024 1024
External identifiers in one translation unit. 65536 memory
Identifiers with block scope declared in one block. 1024 memory
Macro identifiers simultaneously defined in one translation unit. 65536 memory
Parameters in one function declaration. Overload resolution is sensitive to
the first 32 arguments only.
256 memory
Arguments in one function call. Overload resolution is sensitive to the first
32 arguments only.
256 memory
Parameters in one macro definition. 256 memory
Arguments in one macro invocation. 256 memory
Characters in one logical source line. 65536 memory
Characters in a character string literal or wide string literal after
concatenation.
65536 memory
Size of a C or C++ object (including arrays) 262144 268435454
Nesting levels of #include file. 256 memory