ANSI C 1990 标准:ISO/IEC 9899.1990(E)
5星 · 超过95%的资源 需积分: 12 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语言的基础,对于许多现有系统和库的源代码,仍然具有指导意义。
2009-03-29 上传
2018-05-24 上传
2023-07-07 上传
2023-10-11 上传
2023-07-08 上传
2023-06-06 上传
2023-09-02 上传
2023-06-08 上传
regnig
- 粉丝: 1
- 资源: 4
最新资源
- OptiX传输试题与SDH基础知识
- C++Builder函数详解与应用
- Linux shell (bash) 文件与字符串比较运算符详解
- Adam Gawne-Cain解读英文版WKT格式与常见投影标准
- dos命令详解:基础操作与网络测试必备
- Windows 蓝屏代码解析与处理指南
- PSoC CY8C24533在电动自行车控制器设计中的应用
- PHP整合FCKeditor网页编辑器教程
- Java Swing计算器源码示例:初学者入门教程
- Eclipse平台上的可视化开发:使用VEP与SWT
- 软件工程CASE工具实践指南
- AIX LVM详解:网络存储架构与管理
- 递归算法解析:文件系统、XML与树图
- 使用Struts2与MySQL构建Web登录验证教程
- PHP5 CLI模式:用PHP编写Shell脚本教程
- MyBatis与Spring完美整合:1.0.0-RC3详解