C99编程语言标准ISO/IEC 9899:1999(E)概述
5星 · 超过95%的资源 需积分: 43 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语言的灵活性、效率和可移植性,使之更适合现代软件开发的需求。
2016-07-07 上传
2021-06-23 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
2008-11-19 上传
点击了解资源详情
天蓝控
- 粉丝: 6
- 资源: 6
最新资源
- 单片机串口通信仿真与代码实现详解
- LVGL GUI-Guider工具:设计并仿真LVGL界面
- Unity3D魔幻风格游戏UI界面与按钮图标素材详解
- MFC VC++实现串口温度数据显示源代码分析
- JEE培训项目:jee-todolist深度解析
- 74LS138译码器在单片机应用中的实现方法
- Android平台的动物象棋游戏应用开发
- C++系统测试项目:毕业设计与课程实践指南
- WZYAVPlayer:一个适用于iOS的视频播放控件
- ASP实现校园学生信息在线管理系统设计与实践
- 使用node-webkit和AngularJS打造跨平台桌面应用
- C#实现递归绘制圆形的探索
- C++语言项目开发:烟花效果动画实现
- 高效子网掩码计算器:网络工具中的必备应用
- 用Django构建个人博客网站的学习之旅
- SpringBoot微服务搭建与Spring Cloud实践