C99是ISO C标准的一个版本,它是C语言的第二个官方标准,第一个官方标准是C89(也称ANSI C)
C99在C89的基础上增加了许多新的特性:
1.新的数据类型
- '_Bool':布尔类型,值可以是1或0
- '_Complex':和'_Imaginary':复数类型
- 'long long int':至少64位的整数类型
2. 关键字:
- `inline`:用于定义内联函数。
- `restrict`:用于指针,指示访问对象的唯一方式。
- `static`:在函数声明中用于数组参数,表示数组大小是固定的。
3. 可变长度数组(VLA):可以在运行时确定数组的大小。
4. 单行注释:使用`//`进行单行注释。
5. 混合声明和代码:允许在代码块中声明变量。
6. 指定初始化:可以指定数组或结构体的某些元素进行初始化。
7. 复合文字:允许在函数调用中直接构造结构体。
8. 预处理程序的增强:包括具有可变数目参数的宏和`_Pragma`操作符。
9. 新的库函数:如`snprintf`、`vsnprintf`等。
10. 对IEEE浮点数的支持:改进了对浮点数的处理。
C99标准在2000年被ANSI采纳,它被许多现代C编译器支持,如GCC、Clang和Intel C Compiler。不过,一些编译器,如早期的Microsoft Visual C++,对C99的支持有限。C99是C语言发展中的一个重要里程碑,它为C程序员提供了更多的工具和功能来编写现代、高效的代码。