C99国际标准指南:权威C语言学习资料
5星 · 超过95%的资源 需积分: 14 193 浏览量
更新于2024-11-27
5
收藏 1.35MB PDF 举报
"ISO_C99.pdf 是C99国际标准的英文版,是学习C语言的重要参考资料,提供了全面的指导,解答C语言编程中的疑问。该标准由ISO/IEC发布,第二版发行于1999年12月1日,被ANSI批准为美国国家标准。"
C99,全称ISO/IEC 9899:1999,是C语言编程的一个关键标准,它在C89(也称为C90)的基础上进行了扩展和更新,引入了许多新的特性和改进。这个标准对于理解和编写符合现代标准的C程序至关重要。以下是一些C99引入的关键知识点:
1. **类型安全的变长数组(Variable Length Arrays, VLA)**:C99允许在运行时声明数组的大小,提高了灵活性,但同时也带来了内存管理上的挑战。
2. **复合字面量(Compound Literals)**:允许创建匿名结构或联合体的实例,使得在表达式中直接创建结构体变得可能。
3. **内联函数(Inline Functions)**:C99标准正式定义了内联函数的概念,以减少函数调用的开销,但编译器仍然可以选择是否进行内联。
4. **浮点数格式化输入/输出(Formatted Floating-Point Input/Output)**:增强了`<stdio.h>`中的`printf`和`scanf`家族函数,增加了对浮点数格式化输出的支持。
5. **设计由初始化器(Designated Initializers)**:在初始化数组或结构体时可以指定要初始化的成员,提高了代码可读性。
6. **静态assert断言(Static Assert)**:`_Static_assert`宏允许在编译时进行检查,如果条件不满足,编译器会报错,增强了代码的健壮性。
7. **新的预处理器宏**:包括`__func__`,自动提供当前函数名,`__LINE__`和`__FILE__`提供当前行号和源文件名,有助于调试和日志记录。
8. **宽字符和多字节字符支持**:加强了对Unicode字符集的支持,引入了`wchar_t`类型以及宽字符函数。
9. **头文件屏障(Header Guards)**:虽然不是C99标准的一部分,但C99标准文档鼓励使用头文件屏障来防止多次包含同一头文件。
10. **新的数学函数**:如对数、幂、三角函数等的增强版本,提供了更大精度和错误处理。
11. **增强的类型安全**:包括`restrict`关键字,用于告知编译器某些指针不会重叠,帮助优化代码。
这些特性使得C99成为了一个更为强大和现代的编程语言,对于学习和实践C语言编程至关重要。C99标准文档是理解这些特性的权威来源,对于解决编程中的疑问和问题具有很高的参考价值。
567 浏览量
194 浏览量
2019-08-02 上传
171 浏览量
129 浏览量
142 浏览量
156 浏览量
jinkemin
- 粉丝: 2
- 资源: 10
最新资源
- i茅台app自动预约,每日自动预约
- MYSQL5.6版本安装包
- 易语言-hook实现某些特殊控件显示Unicode
- Sunsets HD Wallpapers Sunrise New Tab Theme-crx插件
- Flask实战视频教程下载2022
- django-oauth-toolkit:Djangonauts的OAuth2好东西!
- CNN-chest-x-ray-abnormalities-localization:使用CNN,转移学习和归因方法来定位X射线胸部图像上的异常
- ranikola.github.io:Github页面
- sumaVectores-MulpiplicacionComplejos
- 通用数据库操作工具UDAT
- Coursera-Princeton-assignments-1:仅供参考和提示。 请不要复制我所有的作品
- 51单片机 用74HC245读入数据(51/96/88/ARM)
- 关于车辆控制设备,车辆控制方法和车辆控制程序的介绍说明.rar
- Kendo UI在列表视图之间的拖放
- firefoxtaskmonitor:显示CPU和内存条,每个选项卡和所有任务。 Firefox用户Chrome脚本
- poynt-node:Poynt Node.js SDK