ANSI C 1990 标准:ISO/IEC 9899.1990(E)
5星 · 超过95%的资源 需积分: 12 113 浏览量
更新于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语言的基础,对于许多现有系统和库的源代码,仍然具有指导意义。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2020-08-12 上传
2022-09-19 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
regnig
- 粉丝: 1
- 资源: 4
最新资源
- JavaScript实现的高效pomodoro时钟教程
- CMake 3.25.3版本发布:程序员必备构建工具
- 直流无刷电机控制技术项目源码集合
- Ak Kamal电子安全客户端加载器-CRX插件介绍
- 揭露流氓软件:月息背后的秘密
- 京东自动抢购茅台脚本指南:如何设置eid与fp参数
- 动态格式化Matlab轴刻度标签 - ticklabelformat实用教程
- DSTUHack2021后端接口与Go语言实现解析
- CMake 3.25.2版本Linux软件包发布
- Node.js网络数据抓取技术深入解析
- QRSorteios-crx扩展:优化税务文件扫描流程
- 掌握JavaScript中的算法技巧
- Rails+React打造MF员工租房解决方案
- Utsanjan:自学成才的UI/UX设计师与技术博客作者
- CMake 3.25.2版本发布,支持Windows x86_64架构
- AR_RENTAL平台:HTML技术在增强现实领域的应用