C99标准:ISO/IEC 9899:1999(E)概述
需积分: 43 36 浏览量
更新于2024-09-21
收藏 1.04MB PDF 举报
"C99标准是C语言的一个重要版本,由国际标准化组织ISO和国际电工委员会IEC联合发布,正式名称为ISO/IEC 9899:1999。这个标准对C语言进行了更新和扩展,引入了新的特性,旨在提高代码的可读性、可靠性和效率。C99标准涵盖了程序设计语言的多个方面,包括环境模型、语言特性、类型系统、运算符、词法元素以及头文件等。"
C99标准的详细内容如下:
1. **范围** (Scope): C99标准定义了C语言的语法、语义和行为,适用于编译器开发者、程序员和软件测试人员,确保跨平台的代码兼容性。
2. **规范性引用** (Normative references): 这部分列出C99标准依赖的其他标准或文档,是理解和实现C99标准的基础。
3. **术语、定义和符号** (Terms, definitions, and symbols): 定义了标准中使用的专业术语和符号,有助于读者准确理解标准内容。
4. **符合性** (Conformance): 描述了程序如何满足C99标准,包括不同级别的符合性和强制性要求。
5. **环境** (Environment):
- **概念模型** (Conceptual models):包括翻译环境和执行环境,解释了代码从源码到可执行程序的过程。
- **翻译环境** (Translation environment):涉及源代码的预处理和编译阶段。
- **执行环境** (Execution environments):涉及程序运行时的环境,如内存管理、I/O系统等。
- **环境考虑** (Environmental considerations):涵盖字符集、字符显示语义、信号与中断处理以及环境限制等。
6. **语言** (Language):
- **记号** (Notation):定义了C语言中的语法结构。
- **概念** (Concepts):包括标识符的作用域、链接、命名空间、对象的存储持续时间、类型、类型表示以及兼容类型等。
- **运算符转换** (Conversions):涵盖算术运算符和其他运算符的规则。
- **词法元素** (Lexical elements):包括关键字、标识符、通用字符名、常量、字符串字面量和标点符号等。
- **头文件名** (Header names):定义了标准库的头文件及其作用。
C99标准引入的新特性包括:
- **复数数学支持**:增加了复数类型`_Complex`。
- **变量长度数组** (Variable Length Arrays, VLA):允许在运行时声明数组的大小。
- **内联函数** (`inline` 关键字):允许优化函数调用,减少函数调用开销。
- **类型安全的指针运算**:增强了类型检查,避免不兼容类型的指针操作。
- **窄整型** (如`int8_t`、`uint16_t`):定义了固定宽度的整型,便于位操作和跨平台编程。
- **布尔类型** (`_Bool`):提供了一个内置的布尔类型。
- **多行字符串字面量** 和 **字符串字面量连接**:简化字符串的编写和组合。
- **枚举类型增强**:允许枚举值具有指定的整数值。
- **预处理器宏改进**:如`#include`的`<`和`>`引号改进,以及宏定义的条件编译增强。
这些特性极大地增强了C语言的功能性和灵活性,使得C99成为现代C编程的重要基础。理解和掌握C99标准对于任何C语言开发者来说都是至关重要的。
2019-07-05 上传
102 浏览量
2013-12-17 上传
2022-09-20 上传
2020-07-26 上传
2007-08-03 上传
2008-11-17 上传
2015-05-30 上传
soulidol
- 粉丝: 3
- 资源: 21
最新资源
- Angular实现MarcHayek简历展示应用教程
- Crossbow Spot最新更新 - 获取Chrome扩展新闻
- 量子管道网络优化与Python实现
- Debian系统中APT缓存维护工具的使用方法与实践
- Python模块AccessControl的Windows64位安装文件介绍
- 掌握最新*** Fisher资讯,使用Google Chrome扩展
- Ember应用程序开发流程与环境配置指南
- EZPCOpenSDK_v5.1.2_build***版本更新详情
- Postcode-Finder:利用JavaScript和Google Geocode API实现
- AWS商业交易监控器:航线行为分析与营销策略制定
- AccessControl-4.0b6压缩包详细使用教程
- Python编程实践与技巧汇总
- 使用Sikuli和Python打造颜色求解器项目
- .Net基础视频教程:掌握GDI绘图技术
- 深入理解数据结构与JavaScript实践项目
- 双子座在线裁判系统:提高编程竞赛效率