ISO/IEC 9899:1999(E) C Programming Language Standard
5星 · 超过95%的资源 需积分: 9 44 浏览量
更新于2024-07-30
1
收藏 1.5MB PDF 举报
"C99标准英文版,ISO/IEC 9899:1999(E),是1999年发布的第二版C语言国际标准,由ISO(国际标准化组织)和IEC(国际电工委员会)联合制定。这个标准在C89的基础上进行了更新,增加了新的特性和功能,以适应不断发展的硬件设备和扩展的字符集。C99标准旨在为编程语言C提供一套统一的规范,以确保跨平台的兼容性和代码的可移植性。此版本警告开发者和实现者,某些虽然合法但可能与未来标准冲突的用法,以防止潜在的问题。此标准已由美国国家标准学会(ANSI)批准,并由信息技术产业委员会(ITI)发布。"
C99标准中的主要改进和新增知识点包括:
1. **复合类型(Compound Types)**:引入了`compound literals`,允许在运行时创建结构体、联合体或数组对象。
2. **变长数组(Variable Length Arrays, VLA)**:允许在函数声明中定义数组,其长度可以在运行时确定,增加了代码的灵活性。
3. **类型安全的指针运算(Type-generic expressions)**:通过`<tgmath.h>`头文件提供了宏,可以自动选择适合的浮点或整数数学函数,以提高代码的可读性和安全性。
4. **预处理器宏改进**:`#if`和`#elif`现在支持表达式评估,增强了条件编译的能力。
5. **窄化转换警告(Narrowing Conversions)**:编译器会发出警告,当一个大类型转换为小类型可能会丢失数据时。
6. **增强的浮点控制**:`<fenv.h>`头文件提供了对浮点环境的访问,包括浮点异常处理和控制浮点计算的行为。
7. **标准头文件的扩展**:例如,`<inttypes.h>`提供了整数类型转换的宏,`<stdint.h>`定义了具有指定宽度的整数类型。
8. **位字段(Bit Fields)**:在结构体中定义位字段,可以更有效地利用内存。
9. **静态断言(Static Assertions)**:`_Static_assert()`宏允许在编译时进行断言检查,确保程序在编译阶段就发现错误。
10. **初始化器改进**:允许在初始化列表中使用`= {}`来零初始化结构体或数组的所有成员。
C99标准的发布,不仅提高了C语言的表达能力和安全性,还使得C语言能够更好地适应现代编程的需求。开发者在编写C语言程序时,应遵循C99标准,以确保代码的质量和可维护性。同时,了解和掌握这些新特性对于提高编程效率和减少潜在问题至关重要。
2010-09-01 上传
115 浏览量
2008-11-17 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2010-06-12 上传
2020-01-16 上传
gql1123
- 粉丝: 18
- 资源: 30
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍