2.1 C 标准演进与关键字详解

目录

1 C 标准

1.1 C89 / ANSI C (1989)

1.2 C90 (1990)

1.3 C99 (1999)

1.4 C11 (2011)

1.5 C17 (2018)

1.6 C2x (未来版本)

2 关键字


1 C 标准

        C 语言的标准是指由国际标准化组织(ISO)和国际电工委员会(IEC)共同制定的一系列规范,这些规范定义了 C 语言的语法、特性及其行为。以下是 C 语言的主要标准版本:

1.1 C89 / ANSI C (1989)

  • 这是 C 语言的第一个正式标准,由美国国家标准协会(ANSI)发布。
  • 实际上,这个标准通常被称为 C89 或 ANSI C,它基于 1989 年的 ISO 标准草案。
  • C89 标准规定了一些关键的编程规则和语法结构,如类型定义、变量声明和预处理器指令等。

1.2 C90 (1990)

  • ISO/IEC 9899:1990 是 C 语言的第一个国际标准
  • C90 标准与 C89 非常相似,但在一些细节上有所不同。
  • 它定义了 C 语言的基本语法和功能,包括数据类型、控制结构、函数和库接口等。

1.3 C99 (1999)

  • ISO/IEC 9899:1999 是 C 语言的第二个重要标准
  • C99 引入了许多新特性,例如支持宽字符、复合字面量、变长数组等。
  • 此外,C99 还增强了浮点运算的支持,并增加了新的数学函数。

1.4 C11 (2011)

  • ISO/IEC 9899:2011 是 C 语言的最新标准之一。
  • C11 标准在 C99 的基础上增加了一些新特性,比如线程支持(通过 <threads.h> )、原子操作、动态内存管理改进等。
  • C11 还定义了一些关于并发编程的新 API。

1.5 C17 (2018)

  • ISO/IEC 9899:2018 通常被称为 C17,它是 C11 的一个修正版。
  • C17 标准并没有添加大量新特性,而是对现有标准进行了清理和修正,以提高其可读性和一致性。
  • C17 也被称为 C1z,在 2018 年正式发布前作为代号使用。

1.6 C2x (未来版本)

  • 目前正在开发中的 C 语言标准。
  • C2x 是一个工作中的版本,预计将包含对现有标准的进一步改进和新特性。

        这些标准确保了不同平台和编译器之间 C 语言的一致性,使得程序员能够写出跨平台兼容的代码。随着新版本的推出,C 语言也在不断地进化和发展,以适应现代编程的需求。

        注意:学习一堆关于 C 的版本及标准并无太大意义,关键在于掌握编译器所支持的语言特性,而且我们所学的语法对于初试和机试均不存在问题。


2 关键字

        C 语言中有许多关键字,在后面的章节中将详细介绍这些关键字(不用去记),这里罗列它们的目的是让大家知道 C 语言中的关键字有哪些, 避免命名变量时与关键字重名 (这点完全不用担心,在 CLion 开发环境中,变量重名后会自动提醒大家)。下表列出了 C 语言中的关键字:

关键字分类关键字
数据类型关键字void, char, short, int, float, double, long, signed, unsigned, struct, union, enum
控制流程关键字break, continue, return, if, else, switch, do, while, for, goto
存储类关键字auto, extern, register, static
修饰符关键字const, volatile
其他关键字case, default, sizeof, typedef
C99新增关键字inline, restrict, _Bool, _Complex, _Imaginary
C11新增关键字_Alignas, _Alignof, _Atomic, _Generic, _Noreturn, _Static_assert, _Thread_local

        C 语言(包括 C99 和 C11 标准)中的关键字总数是:

        32(传统 C 语言) + 5( C99 新增) + 7( C11 新增) = 44

        但请注意,并不是所有的 C 语言编译器或环境都默认支持 C99 和 C11 的所有特性,因此在某些情况下,可能无法直接使用这些新增的关键字。此外,_Bool、_Complex 和 _Imaginary 这些关键字通常是通过 <stdbool.h>、<complex.h> 等头文件提供的宏或类型定义来使用的,而不是直接作为关键字使用。在这种情况下,我们可能会将它们视为与关键字相关的特性,而不是严格意义上的关键字。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Thanks_ks

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值