12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- 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
|