Trailing Commas in Enumerations
When the C99 extensions setting is on, the compiler allows a comma after the final item in a list of enumerations.
Compound Literal Values
When the C99 extensions setting is on, the compiler allows literal values of structures and arrays.
Designated Initializers
When the C99 extensions setting is on, the compiler allows an extended syntax for specifying which structure or array members to initialize.
Predefined Symbol __func__
When the C99 extensions setting is on, the compiler offers the __func__ predefined variable.
Implicit Return From main()
When the C99 extensions setting is on, the compiler inserts this statement at the end of a program's main() function if the function does not return a value.
Non-constant Static Data Initialization
When the C99 extensions setting is on, the compiler allows static variables to be initialized with non-constant expressions.
Variable Argument Macros
When the C99 extensions setting is on, the compiler allows macros to have a variable number of arguments.
Extra C99 Keywords
When the C99 extensions setting is on, the compiler recognizes extra keywords and the language features they represent.
C++-Style Comments
When the C99 extensions setting is on, the compiler allows C++-style comments as well as regular C comments.
C++-Style Digraphs
When the C99 extensions setting is on, the compiler recognizes C++-style two-character combinations that represent single-character punctuation.
Empty Arrays in Structures
When the C99 extensions setting is on, the compiler allows an empty array to be the last member in a structure definition.
Hexadecimal Floating-Point Constants
Precise representations of constants specified in hexadecimal notation to ensure an accurate constant is generated across compilers and on different hosts.
Variable-Length Arrays
Variable length arrays are supported within local or function prototype scope, as required by the ISO/IEC 9899-1999 ("C99") standard.