C99标准解析:C语言的新特性和库设施

5星 · 超过95%的资源 需积分: 14 197 下载量 157 浏览量 更新于2024-09-28 4 收藏 1.35MB PDF 举报
"C99标准英文版是C语言的一个重要版本,它定义了C语言的最新规范和特性。这份国际标准旨在随着新设备和技术的发展,不断更新和扩展C语言的功能,同时警告程序员和实现者某些可能与未来标准冲突的用法。C99标准分为四个主要部分:初步元素、环境特性、语言语法和库设施。标准中包含示例、脚注、参考文献以及在附录中提供额外信息,以帮助理解和实施。" C99标准引入了一些新的特性,例如: 1. 复数支持:C99引入了复数类型`float _Complex`, `double _Complex`,使得在C语言中处理复数运算成为可能。 2. 变量长度数组(Variable Length Arrays, VLA):允许在运行时声明数组的大小,增强了代码的灵活性。 3. 内联函数(inline):通过`inline`关键字,编译器可以尝试优化函数调用,减少函数调用开销。 4. 类型安全的指针转换(Type-generic expressions):使用`<tgmath.h>`头文件中的宏,可以进行类型安全的数学运算,编译器会根据操作数类型选择正确的函数版本。 5. 可选的尾随逗号:在数组或结构体定义的括号内,最后一个元素后可以使用逗号,提高代码的可读性。 6. 增强的预处理器:提供了条件宏定义,如`#if defined MACRO`等,使得预处理器功能更加强大。 7. 标准的头文件命名:所有的标准库头文件都被重命名为小写字母,比如`<stdlib.h>`代替了`<stdlib.H>`,以保持一致性。 8. 窄字符和宽字符的支持:增强了对多字节字符和宽字符的处理,如`wchar_t`类型和`wprintf`等宽字符函数。 C99标准还强调了一些过时的特性,这些特性可能在未来的标准中被撤销,但因为其广泛使用而被保留。使用这些特性的新实现或新程序不被推荐。例如,旧式的K&R风格的函数声明就属于此类。 标准的第6部分(语言)基于《The C Reference Manual》,详细规定了C语言的语法、约束和语义;第7部分(库)则是基于1984年的/usr/group标准,描述了C语言的标准库,包括输入输出、字符串处理、数学运算等功能。 ISO/IEC 9899:1999(E)是C99标准的正式发布版本,由ISO(国际标准化组织)和IEC(国际电工委员会)共同制定,并由ANSI(美国国家标准协会)批准作为美国国家标准。这份标准的所有权归ISO、IEC、ANSI和信息技术工业理事会(ITI)所有,未经许可不得复制或销售。对于标准的任何相关问题,应联系信息技术工业理事会。