C99 changes vs C89http://home.tiscalinet.ch/t_wolf/tw/c/c9x_changes.html(Numbers are from the web page list.)Not done (yet?):9, 19. Hexdecimal floating point constants.11. _Complex, _Imaginary, _Bool14. Variable arrays in parameter lists.33. Variable-length arrays34. goto restrictions for variable-length arrows18. Notation for universal characters \uXXXX25. Division and mod truncate toward zero.26. _Bool, float _Complex, double _Complex, long double _ComplexDone:7. __VA_ARGS__11, 30, 31, 32. restrict, inline12. Allow declarations anywhere.15. for loop declarations28. structs ending in incomplete type.Unneeded (already had):1. Translation limits6. Empty macro arguments allowed.8. #line limit10 // comments16. (Type){initializer list} compound literals17. Named initializers20. LL suffix for long long constants21. IEEE 754 floating-point arithmetic22. Long long type, 64 bits wide.24. Initializers for auto aggregates can be non-constants.26. long long int, unsigned long long int, signed long long int27. require at least one type specifier in a declaration29. Idempotent type qualifiers.Unwanted:2. #pragma stdc3. _Pragma4. __STDC_VERSION__5. __STDC_IEC_559__, __STDC_IEC_559_COMPLEX__, __STDC_ISO_10646__13. Digraph tokens23. __func__ identifier
C99 changes vs C89
http://home.tiscalinet.ch/t_wolf/tw/c/c9x_changes.html
(Numbers are from the web page list.)
Not done (yet?):
9, 19. Hexdecimal floating point constants.
11. _Complex, _Imaginary, _Bool
14. Variable arrays in parameter lists.
33. Variable-length arrays
34. goto restrictions for variable-length arrows
18. Notation for universal characters \uXXXX
25. Division and mod truncate toward zero.
26. _Bool, float _Complex, double _Complex, long double _Complex
Done:
7. __VA_ARGS__
11, 30, 31, 32. restrict, inline
12. Allow declarations anywhere.
15. for loop declarations
28. structs ending in incomplete type.
Unneeded (already had):
1. Translation limits
6. Empty macro arguments allowed.
8. #line limit
10 // comments
16. (Type){initializer list} compound literals
17. Named initializers
20. LL suffix for long long constants
21. IEEE 754 floating-point arithmetic
22. Long long type, 64 bits wide.
24. Initializers for auto aggregates can be non-constants.
26. long long int, unsigned long long int, signed long long int
27. require at least one type specifier in a declaration
29. Idempotent type qualifiers.
Unwanted:
2. #pragma stdc
3. _Pragma
4. __STDC_VERSION__
5. __STDC_IEC_559__, __STDC_IEC_559_COMPLEX__,
__STDC_ISO_10646__
13. Digraph tokens
23. __func__ identifier