ANSI C 1990 标准:ISO/IEC 9899.1990(E)

5星 · 超过95%的资源 需积分: 12 104 下载量 194 浏览量 更新于2024-08-01 3 收藏 3.87MB PDF 举报
"ANSI C 1990 Standard - ANSI_ISO 9899-1990,也称为C89,是编程语言C的一个关键版本,由国际标准化组织(ISO)和美国国家标准协会(ANSI)联合发布。这份标准文档详细定义了C语言的语法、语义和实现特性,旨在确保不同平台上的源代码可移植性。" 在1990年的ANSI C标准,即C89,中,主要涵盖了以下几个重要的知识点: 1. **基本数据类型**:C89标准规定了基本数据类型,如`char`、`int`、`float`、`double`等,以及它们的大小和精度。这些类型允许程序员处理各种数值和字符数据。 2. **变量声明**:在C89中,变量必须在作用域的开始处声明,不能在块的中间声明。这与后来的C99标准有所不同,C99允许在循环或条件语句内部声明变量。 3. **函数原型**:C89强制要求函数在使用前必须有原型声明,这样编译器可以检查参数类型匹配,防止类型不兼容导致的问题。 4. **结构化异常处理**:虽然C语言没有像其他高级语言那样的显式异常处理机制,但C89引入了`setjmp()`和`longjmp()`函数来实现一定程度的非局部跳转,用于错误恢复。 5. **指针和数组**:C89对指针和数组的使用进行了规范,包括指针运算、指针和数组的关系、指针的类型安全等方面。 6. **预处理器宏**:C89标准定义了预处理器宏,允许程序员进行文本替换和条件编译,但这可能导致一些副作用和难以调试的问题。 7. **内存管理**:C89提供了动态内存分配的函数,如`malloc()`、`calloc()`、`realloc()`和`free()`,程序员可以直接控制内存的分配和释放。 8. **头文件和库**:标准库如<stdio.h>、<stdlib.h>、<string.h>等包含了许多基本操作的函数原型,如输入输出、内存管理和字符串操作。 9. **类型转换**:C89定义了类型转换规则,包括隐式类型转换和显式类型转换,如`(type)`转换。 10. **位操作**:标准包括了一些位操作符,如`&`、`|`、`^`、`~`和`<<`、`>>`,使得程序员可以直接对二进制位进行操作。 11. **控制流语句**:C89中的控制流语句,如`if`、`switch`、`while`、`for`和`do...while`,是程序逻辑的基础。 12. **复合字面量**:C89引入了复合字面量,如`{(int []) {1, 2, 3}}`,用于创建并初始化数组。 13. **外部链接**:C89标准明确了全局变量和函数的外部链接,使得多个源文件可以共享同一实体。 这个标准对于C语言的开发和使用至关重要,因为它设定了一个共同遵循的规范,保证了不同平台间的代码一致性。然而,随着时间的推移,C语言已经发展到了C99、C11、C18等多个后续版本,引入了更多新特性和改进,比如变量长度数组(VLA)、静态局部变量、弱符号等。尽管如此,C89仍然是理解和学习C语言的基础,对于许多现有系统和库的源代码,仍然具有指导意义。