C 99 vs. ANSI CΒΆ
For further information refer to http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
- Restricted pointers: http://gcc.gnu.org/onlinedocs/gcc/Restricted-Pointers.html
- Variable-length arrays: http://gcc.gnu.org/onlinedocs/gcc/Variable-Length.html
- Flexible array members: http://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
static
and type qualifiers in parameter array declarators.long long int
type:http://gcc.gnu.org/onlinedocs/gcc/Long-Long.html- Additional floating-point characteristics in
<float.h>
. - Removed implicit
int
. - Reliable integer division.
- Universal character names (
\\u
and\\U
). - Compound literals:http://gcc.gnu.org/onlinedocs/gcc/Compound-Literals.html
- Non-constant initializers:http://gcc.gnu.org/onlinedocs/gcc/Initializers.html
- Designated initializers:http://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html
- // comments:http://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Comments.html
- Extended integer types and library functions in
<inttypes.h>
and<stdint.h>
. - Removed implicit function declaration.
- Preprocessor arithmetic done in
intmax_t/uintmax_t
. - Mixed declarations and code:http://gcc.gnu.org/onlinedocs/gcc/Mixed-Declarations.html
- New block scopes for selection and iteration statements.
- Integer constant type rules.
- Integer promotion rules.
- Macros with a variable number of arguments.
- The vscanf family of functions in
<stdio.h>
and<wchar.h>
. - Additional math library functions in
<math.h>
. - Floating-point environment access in:code:<fenv.h>.
- IEC 60559 (also known as IEC 559 or IEEE arithmetic) support.
- Trailing comma allowed in
enum
declaration. %lf
conversion specifier allowed inprintf
.- Inline functions.
- The snprintf family of functions in
<stdio.h>
. - Boolean type in
<stdbool.h>
. - Empty macro arguments.
- New struct type compatibility rules (tag compatibility).
- Additional predefined macro names.
_Prama
preprocessing operator.- Standard pragmas.
__func__
predefined identifier.va_copy
macro.- Additional
strftime
conversion specifiers. - Deprecate
ungetc
at the beginning of a binary file. - Removed deprecation of aliased array parameters.
- Conversion of array to pointer not limited to values.
- Relaxed constraints on aggregate and union initialization.
return
without expression not permitted in function that returns a value (and vice versa).