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