ISO/IEC 9899:1999(E) C Programming Language Standard
5星 · 超过95%的资源 需积分: 9 150 浏览量
更新于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 上传
116 浏览量
2008-11-17 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
gql1123
- 粉丝: 18
- 资源: 31
最新资源
- JavaScript练习题回购实战指南
- 如何使用Python获取进程编号的教程
- 基于PHP构建可定制问卷的调查系统教程
- 深入剖析HTS 702 2018 CTF比赛:Smali语言解密
- EPS2IMG:将EPS文件转换为PDF的工具
- Matlab基准测试函数集:评估优化算法性能
- 基于HTML、CSS和JS创建的简单项目教程与克隆指南
- 28道Dubbo面试题深度解析
- 探索HTML技术在个人博客中的应用
- Java课程项目代码存储库成功创建上传
- Rancher 2.4管道服务介绍与稳定性分析
- 自行车旅行规划利器:Hill Profiler开源地图应用
- Graphic Era大学通知自动化获取与邮件服务
- 自然语言解析节点模块:谁、什么、何时的提醒工具
- MATLAB实现高效立体匹配算法及其GUI演示
- HTML课程第二课作业解析