C99标准:ISO/IEC 9899:1999(E)概述

需积分: 43 1 下载量 36 浏览量 更新于2024-09-21 收藏 1.04MB PDF 举报
"C99标准是C语言的一个重要版本,由国际标准化组织ISO和国际电工委员会IEC联合发布,正式名称为ISO/IEC 9899:1999。这个标准对C语言进行了更新和扩展,引入了新的特性,旨在提高代码的可读性、可靠性和效率。C99标准涵盖了程序设计语言的多个方面,包括环境模型、语言特性、类型系统、运算符、词法元素以及头文件等。" C99标准的详细内容如下: 1. **范围** (Scope): C99标准定义了C语言的语法、语义和行为,适用于编译器开发者、程序员和软件测试人员,确保跨平台的代码兼容性。 2. **规范性引用** (Normative references): 这部分列出C99标准依赖的其他标准或文档,是理解和实现C99标准的基础。 3. **术语、定义和符号** (Terms, definitions, and symbols): 定义了标准中使用的专业术语和符号,有助于读者准确理解标准内容。 4. **符合性** (Conformance): 描述了程序如何满足C99标准,包括不同级别的符合性和强制性要求。 5. **环境** (Environment): - **概念模型** (Conceptual models):包括翻译环境和执行环境,解释了代码从源码到可执行程序的过程。 - **翻译环境** (Translation environment):涉及源代码的预处理和编译阶段。 - **执行环境** (Execution environments):涉及程序运行时的环境,如内存管理、I/O系统等。 - **环境考虑** (Environmental considerations):涵盖字符集、字符显示语义、信号与中断处理以及环境限制等。 6. **语言** (Language): - **记号** (Notation):定义了C语言中的语法结构。 - **概念** (Concepts):包括标识符的作用域、链接、命名空间、对象的存储持续时间、类型、类型表示以及兼容类型等。 - **运算符转换** (Conversions):涵盖算术运算符和其他运算符的规则。 - **词法元素** (Lexical elements):包括关键字、标识符、通用字符名、常量、字符串字面量和标点符号等。 - **头文件名** (Header names):定义了标准库的头文件及其作用。 C99标准引入的新特性包括: - **复数数学支持**:增加了复数类型`_Complex`。 - **变量长度数组** (Variable Length Arrays, VLA):允许在运行时声明数组的大小。 - **内联函数** (`inline` 关键字):允许优化函数调用,减少函数调用开销。 - **类型安全的指针运算**:增强了类型检查,避免不兼容类型的指针操作。 - **窄整型** (如`int8_t`、`uint16_t`):定义了固定宽度的整型,便于位操作和跨平台编程。 - **布尔类型** (`_Bool`):提供了一个内置的布尔类型。 - **多行字符串字面量** 和 **字符串字面量连接**:简化字符串的编写和组合。 - **枚举类型增强**:允许枚举值具有指定的整数值。 - **预处理器宏改进**:如`#include`的`<`和`>`引号改进,以及宏定义的条件编译增强。 这些特性极大地增强了C语言的功能性和灵活性,使得C99成为现代C编程的重要基础。理解和掌握C99标准对于任何C语言开发者来说都是至关重要的。