8.32 Standard C and Standard C++ language extensions

The compiler supports numerous extensions to both the ISO C99 and the ISO C++ Standards, such as various integral type extensions, various floating-point extensions, hexadecimal floating-point constants, and anonymous classes, structures, and unions.

These extensions are available if:
  • The source language is C++ and you are compiling in nonstrict mode.
  • The source language is C99 and you are compiling in nonstrict mode.
  • The source language is C90 and you are compiling in nonstrict mode.
These extensions are not available if:
  • The source language is C++ and the compiler is restricted to compiling strict C++ using the --strict compiler option.
  • The source language is C99 and the compiler is restricted to compiling strict Standard C using the --strict compiler option.
  • The source language is C90 and the compiler is restricted to compiling strict C90 using the --strict compiler option.
Related reference
8.33 Address of a register variable
8.34 Arguments to functions
8.35 Anonymous classes, structures and unions
8.36 Assembler labels
8.37 Empty declaration
8.38 Hexadecimal floating-point constants
8.39 Incomplete enums
8.40 Integral type extensions
8.41 Label definitions
8.42 Long float
8.43 Nonstatic local variables
8.44 Structure, union, enum, and bitfield extensions
Non-ConfidentialPDF file icon PDF versionARM DUI0375E
Copyright © 2007, 2008, 2011, 2012, 2014 ARM. All rights reserved.