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
staticand type qualifiers in parameter array declarators.long long inttype: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 (
\\uand\\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
enumdeclaration. %lfconversion 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.
_Pramapreprocessing operator.- Standard pragmas.
__func__predefined identifier.va_copymacro.- Additional
strftimeconversion specifiers. - Deprecate
ungetcat 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.
returnwithout expression not permitted in function that returns a value (and vice versa).