C99标准详解:ISO/IEC 9899:1999 规范

需积分: 43 1 下载量 10 浏览量 更新于2024-07-29 收藏 1.04MB PDF 举报
"C语言标准 C99" C99是C语言的一个重要版本,由国际标准化组织ISO/IEC制定并发布,正式名称为ISO/IEC 9899:1999。这个标准对C语言进行了更新和扩展,以适应不断发展的计算机科学和技术。以下是C99标准中的关键知识点: 1. **范围(Scope)**:这部分规定了变量、函数和其他标识符的作用域,即它们在代码中的可见性和生命周期。C99标准进一步明确了局部作用域和全局作用域的概念。 2. **标识符的链接性(Linkages of identifiers)**:标识符的链接性涉及到同一个标识符在不同源文件中如何关联。有三种链接类型:外部链接、内部链接和无链接。 3. **命名空间(Namespaces of identifiers)**:C99引入了不同的命名空间,如标签(labels)、外部标识符(external identifiers)、枚举常量(enumeration constants)等,以减少命名冲突的可能性。 4. **对象的存储持续时间(Storage durations of objects)**:标准定义了四种存储持续时间:自动(automatic)、静态(static)、线程局部(thread-local)和动态(dynamic),它们决定了变量何时分配和释放内存。 5. **类型系统**:C99包括了各种基本类型(如int、float、double等)、复合类型(如结构体、联合体)以及类型转换规则。它还引入了新的类型如 `_Bool`(布尔型)、`complex` 数学类型和`stdint.h`中定义的固定宽度整数类型。 6. **类型表示(Representation of types)**:C99详细描述了不同类型在内存中的表示方式,包括符号位、精度、字节对齐等。 7. **兼容类型与复合类型(Compatible type and composite type)**:标准规定了类型兼容性,允许在某些情况下不同类型的变量可以相互赋值,同时定义了复合类型如数组和结构体的组成。 8. **转换(Conversions)**:C99规定了运算符之间的类型转换规则,包括算术运算符和非算术运算符的转换。 9. **词法元素(Lexical elements)**:这部分涵盖了关键字、标识符、通用字符名、常量、字符串字面量和标点符号等基本编程元素的规则。 10. **关键字(Keywords)**:C99引入了新的关键字,例如 `inline`(内联函数)、`restrict`(限制性指针)等,以增强程序性能。 11. **环境(Environment)**:标准中包含了对环境的描述,如字符集、字符显示语义、信号处理、环境限制等。其中,字符集扩展了Unicode支持,而环境限制则涉及系统对程序运行的各种约束。 C99标准的发布极大地增强了C语言的灵活性和功能性,为程序员提供了更多的工具来编写更高效、更可靠和更可移植的代码。这些更新对于理解和编写符合C99标准的程序至关重要。