Controls the use of a subset of ISO/IEC 9899-1999 ("C99") language features.
#pragma c99 on | off | reset
If you enable this pragma, the compiler accepts many of the language features described by the ISO/IEC 9899-1999 standard:
- More rigid type checking.
- Trailing commas in enumerations.
- GCC/C99-style compound literal values.
- Designated initializers.
- __func__ predefined symbol.
- Implicit
return 0; in
main() .
- Non-
const static data initializations.
- Variable argument macros (
__VA_ARGS__ ).
- bool and
_Bool support.
- long long support (separate switch).
- restrict support.
- // comments.
- inline support.
- Digraphs.
- _Complex and
_Imaginary (treated as keywords but not supported).
- Empty arrays as last struct members.
- Designated initializers
- Hexadecimal floating-point constants.
- Variable length arrays are supported within local or function prototype scope (as required by the C99 standard).
- Unsuffixed decimal constant rules.
- ++bool-- expressions.
- (T) (int-list) are handled/parsed as cast-expressions and as literals.
- __STDC_HOSTED__ is
1 .
By default, this pragma is disabled.