ANSI-ISO 9899-1990 C语言国际标准详解

5星 · 超过95%的资源 需积分: 12 56 下载量 122 浏览量 更新于2024-07-30 收藏 3.87MB PDF 举报
"ANSI-ISO_9899-1990 C国际标准89" ANSI-ISO_9899-1990是C语言的一个重要版本,通常被称为C89或C90。这个版本的C语言标准是由美国国家标准学会(ANSI)和国际标准化组织(ISO)联合制定的,于1990年正式发布。它是C语言的第一个官方国际标准,对C语言的语法、类型系统、内存管理、输入/输出、预处理器等方面进行了规范化,使得不同平台和编译器之间的C代码具有更好的可移植性。 在C89标准中,以下几个关键知识点值得深入探讨: 1. **基本数据类型**:C89定义了基本的数据类型,如`char`, `int`, `float`, `double`等,并规定了它们的最小表示范围。此外,还引入了`signed`和`unsigned`关键字来指定整数类型的符号。 2. **结构体与联合体(Structures and Unions)**:C89支持结构体和联合体的声明和使用,这使得复杂数据结构的创建成为可能。结构体可以包含不同类型的数据成员,而联合体则允许所有成员共享同一块内存。 3. **指针**:C89对指针的使用做了严格的规定,包括指针的声明、初始化、算术操作以及指针与数组的关系。它还引入了空指针`NULL`的概念。 4. **函数原型(Function Prototypes)**:函数原型的使用被强制化,以确保函数调用时参数类型的匹配,从而减少类型转换的错误。 5. **预处理器(Preprocessor)**:C89的预处理器提供了宏定义、条件编译指令等功能,增强了代码的可配置性和复用性。 6. **内存管理**:C89提供了`malloc()`和`free()`函数进行动态内存分配和释放,但没有规定内存对齐或者垃圾回收机制,程序员需要自行管理内存。 7. **输入/输出(I/O)**:通过`stdio.h`头文件中的函数如`printf()`和`scanf()`进行标准输入/输出操作。 8. **类型别名(Type Aliases)**:C89允许使用`typedef`关键字创建类型别名,提高代码的可读性。 9. **头文件包含保护(Header Guard)**:为了避免头文件被多次包含导致的问题,C89提倡在头文件中使用预处理器指令来实现包含保护。 10. **异常处理(Error Handling)**:C89并没有内置的异常处理机制,错误处理主要通过返回值和全局变量如`errno`来实现。 值得注意的是,虽然C89标准在当时是先进的,但随着时间的推移,后来的C99和C11标准引入了更多特性,如变量长度数组、内联函数、枚举类型等。然而,C89仍然是许多现有系统和项目的基础,理解和掌握C89标准对于理解C语言的精髓至关重要。