The following features are enabled by default when you compile with the xlc invocation command. They are also enabled with the options -qlanglvl=extc89 (the default in xlc), -qlanglvl=stdc99, -qlanglvl=extc99 and -qlanglvl=extended. For more information on these options, see the -qlanglvl option .
Language feature | Discussed in: |
---|---|
Hexadecimal floating-point constants | Hexadecimal floating-point literals |
__func__ predefined identifier | The __func__ predefined identifier |
Concatenation of wide and non-wide character strings | String concatenation |
Mixed declarations and code | Overview of data declarations and definitions |
long long data type | Integral types |
Complex data type | Complex floating-point types |
_Bool data type | Boolean types |
Trailing comma allowed in enum declaration | Enumeration type definition |
Duplicate type qualifiers | Type qualifiers |
Variable length arrays | Variable length arrays |
Non-lvalue array subscripts | Array subscripting operator [ ] |
Flexible array members at the end of a structure or union | Flexible array members |
Non-constant expression in initializer for structure or union | Initialization of structures and unions |
Designated initializers | Designated initializers for aggregate types (C only) |
Removal of implicit function declaration | Function declarations |
Removal of implicit int return type in function declarations | Function return type specifiers |
Static arrays as function parameters | Static array indices in function parameter declarations (C only) |
Variable arguments in function-like macros | Function-like macros |
Empty arguments in function-like macros | Function-like macros |
Additional predefined macro names | Standard predefined macro names |
Compound literals | Compound literals |
_Pragma operator | The _Pragma preprocessing operator |
Standard pragmas | Standard pragmas |
New limit for #line directive | The #line directive |
The following feature is enabled by default when you compile with the xlc invocation command. It is also enabled with the options -qlanglvl=extc89 (the default in xlc), -qlanglvl=stdc99, -qlanglvl=extc99 and -qlanglvl=extended. It is also enabled or disabled by a specific compiler option, which is listed in the table below.
Language feature | Discussed in: | Individual option control |
---|---|---|
Digraphs | Digraph characters | -q[no]digraph |
The following features are enabled by default when you compile with the c99 invocation command, or with the-qlanglvl=stdc99 or -qlanglvl=extc99 compiler options or related pragmas. They are also enabled or disabled by specific compiler options, which are listed in the table below; these compiler options are enabled in the default configuration file for the xlc invocation command.
Language feature | Discussed in: | Individual option control |
---|---|---|
C++ style comments | Comments | -q[no]cpluscmt |
The inline function specifier | The inline function specifier | -qkeyword=inline |
The following features are enabled only when you compile with the c99 invocation command, or with the-qlanglvl=stdc99 or -qlanglvl=extc99 compiler options or related pragmas. They are also enabled by specific compiler options, listed in the table below.
Language feature | Discussed in: | Individual option control |
---|---|---|
Universal character names | The Unicode standard | -qlanglvl=[no]ucs |
The restrict type qualifier | The restrict type qualifier | -qkeyword=restrict |
The following feature is enabled only when you compile with the c99 invocation command, or with the-qlanglvl=stdc99 or -qlanglvl=extc99 compiler options or related pragmas.
Language feature | Discussed in: |
---|---|
Unsuffixed long long integer literals | Decimal integer literals |
Related information