C语言(C89)32个关键字大体可以分类两类:

1 C89与类型相关的20个关键字

C做为强类型语言,类型要显式声明并在编译器做检查。

c语言的32个关键词(从关键字的分类理解C语言的核心思想)(1)

2 C89与控制结构相关的12个关键字

控制结构实现算法,算法用函数呈现,由函数实现模块化。

c语言的32个关键词(从关键字的分类理解C语言的核心思想)(2)

3 C99、C11新增关键字

keyword

Through marco used as

defined in

restrict (since C11)

指针变量修饰

inline (since C11)

内联函数

_Alignas (since C11)

alignas

stdalign.h

_Alignof (since C11)

alignof

stdalign.h

_Atomic (since C11)

atomic_bool,atomic_int,…

stdatomic.h

_Bool (since C99)

bool

stdbool.h

_Complex (since C99)

complex

complex.h

_Generic (since C11)

(no macro)

_Imaginary (since C99)

imaginary

complex.h

_Noreturn (since C11)

noreturn

stdnoreturn.h

_static_assert (since C11)

static_assert

assert.h

_Thread_local (since C11)

thread_local

threads.h

在C99中,新增了_Bool(关键字)数据类型,在stdbool.h头文件,宏定义bool为-Bool:

#define bool _Bool #define true 1 #define FALSE 0

4 C 新增关键字

C 新增的关键字主要有与类相关的10个关键字,与数据类型相关(包括类型转换)相关的20个关键字,与异常处理相关的5个关键字,与内存管理相关的4个关键字。

sn

C

classify

remark

1

class

类相关

2

explicit

类相关

3

friend

类相关

4

mutable

类相关

5

operator

类相关

6

private

类相关

7

protected

类相关

8

public

类相关

9

this

类相关

10

virtual

类相关

11

bool

类型相关

12

char8_t (since C 20)

类型相关

13

char16_t (since C 11)

类型相关

14

char32_t (since C 11)

类型相关

15

consteval (since C 20)

类型相关

16

constexpr (since C 11)

类型相关

17

decltype (since C 11)

类型相关

18

dynamic_cast

类型相关

19

FALSE

类型相关

20

namespace

类型相关

21

nullptr (since C 11)

类型相关

22

reinterpret_cast

类型相关

23

static_cast

类型相关

24

template

类型相关

25

TRUE

类型相关

26

typeid

类型相关

27

typename

类型相关

28

using

类型相关

29

wchar_t

类型相关

30

const_cast

类型相关

31

alignas (since C 11)

内存相关

内存对齐

32

alignof (since C 11)

内存相关

内存对齐

33

delete

内存相关

34

new

内存相关

35

catch

异常处理

36

noexcept (since C 11)

异常处理

37

static_assert (since C 11)

异常处理

38

throw

异常处理

39

try

异常处理

40

concept (since C 20)

模板实参约束

41

requires (since C 20)

模板实参约束

42

export

模板引用

43

asm

使用汇编

44

thread_local (since C 11)

线程相关

45

co_await (since C 20)

协程相关

46

co_return (since C 20)

协程相关

47

co_yield (since C 20)

协程相关

48

and

 &&

运算符替代写法

49

and_eq

&=

运算符替代写法

50

bitand

&

运算符替代写法

51

bitor

|

运算符替代写法

52

compl

~

运算符替代写法

53

not

 !

运算符替代写法

54

not_eq

 !=

运算符替代写法

55

or

 ||

运算符替代写法

56

or_eq

|=

运算符替代写法

57

xor

 ^

运算符替代写法

58

xor_eq

 ^=

运算符替代写法

综上,数据类型系统与控制结构是C语言的核心。

控制结构实现算法,数据类型系统构造数据结构。

数据类型的三个方面:

① 值域和内存空间需求(sizeof);

② 类型编码和译码规则(如字符的ASCII码,整型的补码,浮点型的阶码、尾码等,使用编码规则编出相关类型数据的限长的二进制序列表示,及对限长的二进制序列按照相关类型数据的编码规则解释出特定类型的数据);

③ 一个操作集(operations);

运算符就是对特定数据类型操作的定义,如算术、比较、逻辑运算符等。

5 总结一下

编程语言的核心思想:抽象、分类、分治、模块化。抽象出事物的本质数据,进行分类,利用分治思想抽象出函数,实现模块化。

人类面对大自然这个复杂系统,如何认识它?分科而治,分类研究,虽是无奈之举,但却行之有效。

相应的,计算机科学和编程语言也是如此,如上所述的C的数据类型系统,三类控制结构,以及C 的类类型和泛型。

编程语言也和人类语言一样,都是用来描述名词、形容词、动词的。编程语言的数据类型系统可以用来描述名词、形容词,控制结构和函数可以用来描述由动词描述的功能。更进一步,动词和形容词的主体自然是名词,分类抽象成类,也就是面向对象编程范式的C 了。

ref

https://en.cppreference.com/w/

-End-

,