C99标准详解:ISO/IEC 9899:1999(E)
5星 · 超过95%的资源 需积分: 43 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语言的底层机制,提高代码质量,并确保程序的可移植性。
2022-05-15 上传
2012-12-29 上传
2010-12-26 上传
2019-09-01 上传
2019-07-05 上传
2019-12-20 上传
2024-03-19 上传
2022-09-20 上传
2020-08-12 上传
qlq094208
- 粉丝: 3
- 资源: 2
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录