Appendix C

Translation Limits

According to ANSI/ISO standard, each compiler conforming to the standard should be able to translate and execute a program that contains constructs subject to the following limits:

  • 127 nesting levels of blocks
  • 63 nesting levels of conditional inclusion
  • 12 pointer, array and function declarators (in any combinations) modifying an arithmetic, structure, union or incomplete type in a declaration
  • 63 nesting levels of parenthesized expressions within a full expression
  • 63 significant characters in an internal identifier (i.e. with internal linkage) or a macro name
  • 31 significant characters in an external identifier (i.e. external linkage)
  • 4095 external identifiers in one translation unit (i.e. file)
  • 511 identifiers ...

Get Programming in C: A Practical Approach, First Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.