ISO/IEC 9899 1999 (C99):C语言标准

需积分: 13 1 下载量 170 浏览量 更新于2024-07-17 1 收藏 1.01MB PDF 举报
"ISO IEC 9899 1999 (C99)" 是一个国际标准,它定义了C语言的1999年版本,通常称为C99。这个标准是C编程语言发展的一个重要里程碑,引入了许多新特性、改进和规范,旨在提高代码的可移植性、效率和安全性。 ISO/IEC 9899:1999(E) 包含了关于C语言的各种方面,包括语言的语法、行为和环境交互。该标准由以下几个主要部分组成: 1. **Scope**(范围):这部分定义了标准覆盖的内容,即C语言的全部特性和规定,包括程序结构、数据类型、运算符、控制流程等。 2. **Normative references**(规范性引用):列出其他相关标准或文档,这些是理解和实现C99所必需的。 3. **Terms, definitions, and symbols**(术语、定义和符号):提供了一套共同的语言和符号,确保对标准的理解是一致的。 4. **Conformance**(符合性):描述了程序如何与标准相符合,以及实现C99标准的编译器应满足的要求。 5. **Environment**(环境):讨论了C程序运行时的上下文,包括概念模型、翻译环境和执行环境。这部分详细阐述了: - **Translation environment**(翻译环境)涉及源代码到可执行代码的转换过程。 - **Execution environments**(执行环境)关注程序实际运行时的条件,如内存管理、输入/输出和异常处理。 - **Environmental considerations**涵盖字符集、字符显示语义、信号和中断处理以及环境限制,这些都是影响程序行为的关键因素。 6. **Language**(语言):这是标准的核心,详细介绍了C语言的语法和语义。包括: - **Notation**(记法):定义了用于描述语言规则的符号和表示方法。 - **Concepts**(概念):如作用域、标识符的链接性、命名空间、对象的存储持续时间、类型系统和类型表示等。 - **Conversions**(转换):涉及不同类型的算术运算符和非算术运算符的转换规则。 - **Lexical elements**(词法元素):包括关键字、标识符、通用字符名、常量、字符串字面量和标点符号。 - **Header names**(头文件名):描述了头文件的使用和它们在程序中的作用。 C99引入的新特性包括: - 复合类型(如`struct`和`union`的增强) - 嵌套函数 - 可变长度数组(VLA) - 静态 assert 宏 - 新的数据类型(如 `_Bool`,`long long`) - 强制类型转换的显式指定(如 `(int)`) - 多行字符串字面量 - 单行注释(`//`) - 匿名结构和联合 这些改变和增强使得C99更适合现代软件开发的需求,提高了代码的可读性和可维护性。理解和遵循C99标准对于编写高效、可靠的C语言程序至关重要。