C99标准:ISO/IEC 9899:1999概述

5星 · 超过95%的资源 需积分: 43 3 下载量 2 浏览量 更新于2024-07-29 收藏 1.04MB PDF 举报
"C99Standard.pdf 是C语言的一个重要标准文档,由ISO/IEC发布,涵盖了C语言的各个方面,旨在为编程提供规范。该文档包括了C99标准的详细条款,从范围、规范引用、术语定义、符号到语言特性和环境考虑等众多内容。" C99标准是C语言的第三个主要版本,它在C90的基础上进行了扩展和改进。此标准在编程界具有重要意义,因为它引入了许多新的特性,提高了代码的可读性、安全性和效率。 1. **范围** (1.Scope): C99标准规定了C语言的语法、语义以及实现的最低要求,适用于编译器开发者和C程序员,以确保代码的可移植性。 2. **规范引用** (2.Normative references): 这一部分列出了其他与C99标准相关的规范,这些规范可能对理解和实现C99标准至关重要。 3. **术语、定义和符号** (3.Terms, definitions, and symbols): 定义了C语言中的核心概念,如标识符、类型、运算符、常量、字符串字面量等,为后续章节提供了清晰的术语基础。 4. **符合性** (4.Conformance): 描述了编译器和程序如何满足C99标准,包括不同级别的符合性类别以及如何测试符合性。 5. **环境** (5.Environment): 包括了程序运行的上下文,如**翻译环境** (5.1.1 Translation environment) 和 **执行环境** (5.1.2 Execution environments),涵盖了字符集(5.2.1 Characters sets)、字符显示语义(5.2.2 Character display semantics)、信号和中断处理(5.2.3 Signals and interrupts)以及环境限制(5.2.4 Environmental limits)等。 6. **语言** (6.Language): 详细介绍了C99的语法和特性,包括: - **记号** (6.1 Notation): 定义了C语言的语法符号。 - **概念** (6.2 Concepts): - **标识符的范围** (6.2.1 Scopes of identifiers):解释了变量、函数等标识符的作用域规则。 - **标识符的链接** (6.2.2 Linkages of identifiers):讨论了全局标识符和局部标识符的链接性。 - **标识符的命名空间** (6.2.3 Namespaces of identifiers):介绍了如何避免标识符冲突。 - **对象的存储持续时间** (6.2.4 Storage durations of objects):定义了静态、动态和自动存储期。 - **类型** (6.2.5 Types):涵盖了C语言的各种基本和复合类型。 - **类型表示** (6.2.6 Representations of types):讨论了不同类型在内存中的表示方式。 - **兼容类型和复合类型** (6.2.7 Compatible type and composite type):定义了类型兼容性原则。 - **转换** (6.3 Conversions):包括算术操作数的转换和其它操作数的转换。 - **词法元素** (6.4 Lexical elements):涵盖了关键字(Keywords)、标识符(Identifiers)、通用字符名(Universal character names)、常量(Constants)、字符串字面量(String literals)和标点符(Punctuators)等。 - **头文件名** (6.4.8 Headernames):讨论了标准库和用户自定义头文件的使用。 C99标准引入的新特性包括: - **复数数学库** (Complex math library) 支持复数运算。 - **变长数组** (Variable-length arrays) 允许数组大小在运行时确定。 - **类型安全的指针和数组操作** (safer pointer and array operations) 如`restrict`关键字,减少数据竞争的可能性。 - **内联函数** (Inline functions) 提高代码执行效率。 - **布尔类型** (`_Bool` 或 `bool`) 引入了布尔逻辑。 - **宽字符和宽字符串** (Wide characters and wide strings) 用于多字节字符支持。 - **枚举类型的完整整数类型** (Enums as integer types) 使枚举类型更强大。 - **多行字符串字面量** (Multiline string literals) 便于编写和阅读代码。 - **预处理器宏改进** (Improved preprocessor macros) 如宏定义中的条件编译。 C99标准对现代C编程有着深远的影响,它提升了C语言的灵活性、安全性和可维护性,使得C程序员可以利用更多的工具来解决复杂问题。对于任何C语言的学习者和开发者来说,理解和掌握C99标准都是至关重要的。