关键字
在C语言中,关键字是指在编程语言里事先定义好并赋予了特殊含义的单词,也称作保留字,它们具有特殊的含义,不能被随便用作变量名、函数名等。C89标准共定义了32个关键字,而C99标准在C89的基础上又增加了5个关键字,分别为restrict、inline、_Bool、_Complex、_Imaginary,因此,C99中一共有37个关键字,具体如下:
auto break case char const continue default do double else enum extern float for goto if inline int long register restrict return short signed sizeof static struct switch typedef union unsigned void volatile while _Bool _Complex _Imaginary
上面列举的关键字中,每个关键字都有特殊的作用。按照用途可将这37个关键字大致分为五类,具体如下所示。
1、数据类型关键字
数据类型关键字用于标识变量或函数返回值的数据类型。数据类型关键字及其含义如表1所示。
表1 数据类型关键字及含义
关键字 | 含义 |
---|---|
char | 声明字符型变量或函数 |
double | 声明双精度浮点类型变量或函数 |
enum | 声明枚举类型 |
float | 声明单精度浮点类型变量或函数 |
int | 声明整型变量或函数 |
long | 声明长整型变量或函数 |
short | 声明短整型变量或函数 |
signed | 声明有符号类型变量或函数 |
struct | 声明结构体类型或函数 |
union | 声明共用体类型或函数 |
unsigned | 声明无符号类型变量或函数 |
void | 声明无返回值函数、无类型指针 |
2、控制语句关键字
控制语句关键字用于控制程序的结构流程。控制语句关键字及含义如表2所示。
表2 控制语句关键字及含义
关键字 | 含义 |
---|---|
break | 跳出当前循环,执行循环后面的代码 |
case | switch条件语句分支 |
continue | 跳出当前循环,执行下一次循环 |
default | switch语句中的“其他”分支 |
do | do…while循环语句循环体 |
else | if条件语句否定分支 |
for | for循环语句 |
goto | 无条件跳转语句 |
if | 条件语句 |
return | 子程序(函数)返回语句 |
switch | 多条件分支选择语句 |
while | while循环语句 |
3、存储类型关键字
存储类型关键字用于标识变量的存储类型。存储类型关键字及含义如表3所示。
表3 存储类型关键字
关键字 | 含义 |
---|---|
auto | 声明自动变量,即由系统根据上下文环境自动确定变量类型 |
extern | 声明外部变量或函数 |
register | 声明寄存器变量 |
static | 声明静态变量或函数 |
4、其他关键字
还有一些表示特殊含义的关键字,这些特殊关键字及含义如表4所示。
表4 其他关键字及含义
关键字 | 含义 |
---|---|
const | 声明只读变量 |
sizeof | 计算数据类型长度 |
typedef | 给数据类型取别名 |
volatile | 使用volatile修饰的变量,在程序执行中可被隐含的改变 |
5、C99新增关键字
C99新增了5个关键字,其含义如表5所示。
表5 C99新增关键字及含义
关键字 | 含义 |
---|---|
inline | 定义内联函数 |
restrict | 用于限定指针,表明指针是一个数据对象的唯一且初始化对象 |
_Bool | 声明一个布尔类型变量或函数 |
_Complex | 声明一个复数类型变量或函数 |
_Imaginary | 声明一个虚数类型变量或函数 |