5.2.4.1 Translation limits

Previous Table of Contents "New C Standard" commentary

276 The implementation shall be able to translate and execute at least one program that contains at least one instance of every one of the following limits:13)

277 —  127 nesting levels of blocks

278 —  63 nesting levels of conditional inclusion

279 —  12 pointer, array, and function declarators (in any combinations) modifying an arithmetic, structure, union, or incomplete type in a declaration

280 —  63 nesting levels of parenthesized declarators within a full declarator

281 —  63 nesting levels of parenthesized expressions within a full expression

282 —  63 significant initial characters in an internal identifier or a macro name (each universal character name or extended source character is considered a single character)

283 —  31 significant initial characters in an external identifier (each universal character name specifying a short identifier of 0000FFFF or less is considered 6 characters, each universal character name specifying a short identifier of 00010000 or more is considered 10 characters, and each extended source character is considered the same number of characters as the corresponding universal character name, if any)14)

284 13) Implementations should avoid imposing fixed translation limits whenever possible.

285 —  4095 external identifiers in one translation unit

286 —  511 identifiers with block scope declared in one block

287 —  4095 macro identifiers simultaneously defined in one preprocessing translation unit

288 —  127 parameters in one function definition

289 —  127 arguments in one function call

290 —  127 parameters in one macro definition

291 —  127 arguments in one macro invocation

292 —  4095 characters in a logical source line

293 —  4095 characters in a character string literal or wide string literal (after concatenation)

294 —  65535 bytes in an object (in a hosted environment only)

295 —  15 nesting levels for #included files

296 —  1023 case labels for a switch statement (excluding those for any nested switch statements)

297 —  1023 members in a single structure or union

298 —  1023 enumeration constants in a single enumeration

299 —  63 levels of nested structure or union definitions in a single struct-declaration-list

Next

Created at: 2008-01-30 02:39:40 The text from WG14/N1256 is copyright © ISO