C99标准详解:ISO/IEC 9899:1999(E)

5星 · 超过95%的资源 需积分: 43 13 下载量 153 浏览量 更新于2024-10-21 收藏 1.04MB PDF 举报
"Standard C99.pdf 是一份关于C99标准的英文原版文档,是学习C++的基础,尤其在研读经典编程著作时,理解C99规范显得尤为重要。文档涵盖了C语言的多个核心方面,包括环境、语言、运算符、词汇元素等,旨在帮助读者深入理解C语言的标准规定和行为。" C99是C语言的一个重要版本,由国际标准化组织(ISO)和国际电工委员会(IEC)联合发布,正式名称为ISO/IEC 9899:1999。这个标准引入了许多新特性,增强了C语言的功能性和可读性。 1. **环境(Environment)** - **概念模型(Conceptual models)**:文档描述了翻译环境(Translation environment)和执行环境(Execution environments),前者涉及源代码的编译和预处理,后者涉及程序的运行时行为。 - **字符集(Charsets)**:规定了C99支持的字符集,包括基本ASCII字符集和其他扩展字符。 - **字符显示语义(Character display semantics)**:讨论了如何在终端或其他输出设备上正确显示字符。 - **信号与中断(Signals and interrupts)**:定义了程序如何响应系统信号,以及中断处理机制。 - **环境限制(Environmental limits)**:明确了系统对程序的内存、文件大小等资源的限制。 2. **语言(Language)** - **符号、定义和术语(Notation, terms, and definitions)**:界定了文档中使用的符号、术语,提供了语言的基础框架。 - **标识符的范围(Scopes of identifiers)**:详细解释了变量、函数等标识符的作用域规则。 - **标识符的链接(Linkages of identifiers)**:讨论了全局和局部标识符的链接性,以及它们在不同编译单元中的行为。 - **标识符的命名空间(Namespaces of identifiers)**:定义了不同类型的标识符(如函数、变量、类型名)之间的命名隔离。 - **对象的存储持续时间(Storage durations of objects)**:涵盖了静态、动态和自动存储期的对象。 - **类型(Types)**:介绍了C99的各种基本类型,如整型、浮点型、字符型等。 - **类型表示(Representations of types)**:讨论了不同类型在内存中的表示方式,包括字节顺序、精度等。 - **兼容类型与复合类型(Compatible type and composite type)**:定义了类型之间的兼容性,以及结构体、数组等复合类型的规则。 - **转换(Conversions)**:详细阐述了不同类型之间的算术运算和隐式类型转换规则。 3. **运算符(Conversions, Arithmetic operands, Other operands)** - **算术运算符(Arithmetic operands)**:包括加减乘除、取余等操作的定义和行为。 - **其他运算符(Other operands)**:涵盖了赋值、关系、逻辑等其他类型的运算符。 4. **词法元素(Lexicalelements)** - **关键字(Keywords)**:列举了C语言的关键字,如`int`, `void`, `if`, `for`等。 - **标识符(Identifiers)**:规定了标识符的构成和命名规则。 - **通用字符名(Universal character names)**:允许使用Unicode字符作为标识符或字符串的一部分。 - **常量(Constants)**:包括数值常量、字符常量、字符串字面量等。 - **字符串字面量(String literals)**:介绍了字符串的表示和连接规则。 - **标点符号(Punctuators)**:列出了所有C语言的符号,如括号、分号、逗号等。 - **头文件名(Header names)**:规定了#include指令中头文件的命名和引用方式。 C99标准的这些内容构成了C语言的核心规范,对于程序员理解和编写符合标准的C代码至关重要。通过深入学习这份文档,开发者可以更好地掌握C语言的底层机制,提高代码质量,并确保程序的可移植性。