C99编程语言标准ISO/IEC 9899:1999(E)概述

5星 · 超过95%的资源 需积分: 43 15 下载量 160 浏览量 更新于2024-07-30 收藏 1.04MB PDF 举报
"C Standard ISO/IEC 9899:1999(E) 是C编程语言的最新标准,被ANSI在2000年采纳,通常称为C99。它定义了C语言的规范、术语、符号、符合性、环境以及语言结构等多个方面。" C99标准,即ISO/IEC 9899:1999,是C编程语言的一个里程碑,对C89标准进行了扩展和改进。以下是对该标准部分关键内容的详细解释: 1. **范围** (1 Scope): 标准定义了C语言的全部语法、语义和行为,包括程序的组成元素和它们之间的相互作用。 2. **规范引用** (2 Normative references): 强调了本标准所依赖的其他规范或标准,确保C语言的实现与这些引用一致。 3. **术语、定义和符号** (3 Terms, definitions, and symbols): 为C语言中的术语提供明确的定义,确保所有开发者对语言的理解是一致的。 4. **符合性** (4 Conformance): 描述了程序和实现如何符合C99标准,包括不同级别的符合性和可选特性。 5. **环境** (5 Environment): 这一部分涉及程序运行时的环境因素,包括: - **概念模型** (5.1 Conceptual models): 介绍翻译和执行环境的概念,定义了编译和运行时的抽象模型。 - **翻译环境** (5.1.1 Translation environment): 描述了源代码到机器码的转换过程,包括预处理、编译和链接。 - **执行环境** (5.1.2 Execution environments): 说明程序运行时的条件,如内存管理和系统资源。 - **环境考虑** (5.2 Environmental considerations): 包括字符集、字符显示语义、信号和中断处理以及环境限制等。 6. **语言** (6 Language): 这是标准的核心部分,详细规定了C语言的语法和语义: - **符号和概念** (6.1 Notation): 定义了语言的语法表示,如运算符和关键字。 - **标识符的范围、链接和命名空间** (6.2 Concepts): 解释了标识符的作用域、链接性(全局和局部)以及命名规则,包括不同类型的标识符(如变量、函数和类型名)的命名空间。 - **对象的存储持续时间** (6.2.4 Storage durations of objects): 描述了自动、静态、线程局部和动态四种存储类别。 - **类型系统** (6.2.5 Types): 引入了基本类型、复合类型以及类型兼容性。 - **类型表示** (6.2.6 Representation of types): 讨论了类型如何在机器中表示,包括位模式和字节顺序。 - **兼容类型和复合类型** (6.2.7 Compatible type and composite type): 阐述了不同类型间的兼容性,如结构体和联合体。 - **转换** (6.3 Conversions): 规定了不同类型的算术运算和操作符,以及隐式和显式的类型转换规则。 - **词法元素** (6.4 Lexical elements): 包括关键字、标识符、通用字符名、常量、字符串字面量和标点符号,这些都是构成C语言程序的基本元素。 C99引入了许多新特性,如复数支持、类型安全的变长数组、增强的预处理器、新的数据类型(如`stdint.h`中定义的固定宽度整型)、新的内联函数关键字`inline`、`_Bool`布尔类型、`restrict`关键字以减少数据竞争等。这些改进增强了C语言的灵活性、效率和可移植性,使之更适合现代软件开发的需求。