ISO C90和iSO C99的区别
时间: 2024-09-14 14:01:11 浏览: 13
ISO C90和ISO C99是国际标准化组织(ISO)分别于1990年和1999年发布的C语言标准,这两个版本的C语言标准在多个方面有所不同。以下是一些关键的区别:
1. 标准化的语言特性:
- ISO C90对应于ANSI C,是C语言的第一个广泛认可的标准。这个版本的C语言因其稳定性和广泛实现而被广泛使用。
- ISO C99对C语言进行了显著扩展,包括了新的语法特性和库函数,旨在提高C语言的表达能力和效率,以及更好的支持大型程序。
2. 语言特性改进:
- ISO C99引入了布尔类型(`_Bool`),允许进行布尔运算。
- C99支持可变长度数组(VLA),即数组的大小可以在运行时确定。
- 新增了复数和虚数类型支持,以及相关的库函数。
- 提供了更好的整数类型支持,包括`long long int`类型。
- 引入了复合字面量和指定初始化器。
3. 语言库的扩展和改进:
- C99为数学库引入了许多新的函数。
- 标准库中增加了对宽字符和多字节字符的支持,提供了更多的国际化功能。
- 引入了对通用的非整数类型的复数和虚数的数学函数库。
4. 编译器支持:
- ISO C90是早期C编译器的标准,它要求编译器实现基本的语言特性。
- ISO C99由于引入了较多的新特性,对编译器的要求更高,因此C99的编译器支持可能不如C90广泛,尤其是在一些老旧的系统上。
5. 语言一致性:
- C99标准鼓励了更多的编译器一致性检查,比如类型兼容性和标准库函数调用。
6. 对原有代码的影响:
- ISO C90是向后兼容的,即所有C99编写的程序都应该能在C90编译器上编译通过,但反之则不然。因为C99中的一些新特性在C90标准中是不被支持的。