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

4星 · 超过85%的资源 需积分: 50 24 下载量 108 浏览量 更新于2024-10-01 2 收藏 12.99MB PDF 举报
"ANSI ISO 9899-1990 是C语言的标准规范,由美国国家标准协会(ANSI)制定,通常称为ANSI C或C89。这一标准在1983年发布,旨在为C语言提供一个统一的定义,确保不同平台上的编译器对C语言的解释一致。该标准的实施是自愿的,但它的存在促进了跨平台的兼容性和代码的可移植性。" ANSI ISO 9899-1990 标准详述了C语言的核心特性,包括语法、类型系统、控制结构、函数、预处理器、内存管理、错误处理等方面。以下是该标准涵盖的一些关键知识点: 1. 类型系统:ANSI C 引入了基本数据类型,如 `int`, `char`, `float`, `double` 等,并规定了它们的大小和精度。此外,还定义了`void` 类型,用于无类型指针。 2. 指针和数组:标准明确了指针和数组的区别,指针可以被声明、初始化、赋值和比较。指针运算包括解引用和地址运算,而数组名在表达式中被视为指向其首元素的指针。 3. 函数:函数定义和调用的规则被标准化,包括参数传递、返回值、函数原型声明等。函数原型允许编译器进行类型检查,防止不匹配的参数传递。 4. 预处理器:预处理器宏定义 (`#define`) 和条件编译指令 (`#if`, `#ifdef`, `#ifndef`, `#else`, `#endif`) 被标准化,用于代码的条件化和模块化。 5. 内存管理:`malloc()` 和 `free()` 函数被定义,用于动态内存分配和释放。`calloc()` 和 `realloc()` 提供了额外的功能,如零填充和内存块的重新分配。 6. 输入/输出:标准输入输出库 (`stdio.h`) 包含了 `printf()`, `scanf()`, `fopen()`, `fclose()` 等函数,用于与外部世界的交互。 7. 错误处理:通过 `errno` 变量和 `perror()` 函数,程序可以获取和报告运行时错误。 8. 头文件和包含:标准定义了如何使用 `<header.h>` 文件来引入库函数和类型定义,以及如何避免头文件重复包含的问题。 9. 移植性:ANSI C 的目标是提高代码的可移植性,这意味着符合标准的代码可以在多种不同的平台上编译和运行。 10. 兼容性:尽管ANSI C是1983年的标准,但它对后来的C99和C11标准有着深远的影响,许多早期的ANSI C代码仍然能在现代编译器上正常工作。 这个标准的制定对于C语言的发展至关重要,它不仅规范了编程实践,也为后续的C++和其他编程语言提供了基础。通过遵循ANSI C标准,程序员可以编写出更健壮、更易于维护的代码,并确保代码在不同的环境和系统中具有一致的行为。