C语言(C89)32个关键字大体可以分类两类:
1 C89与类型相关的20个关键字
C做为强类型语言,类型要显式声明并在编译器做检查。
2 C89与控制结构相关的12个关键字
控制结构实现算法,算法用函数呈现,由函数实现模块化。
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-
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。