一、关键字和保留标识符
关键字 就是被 C 语言赋予了特定含义的英文单词,它们不能被作为标识符来使用。在 C 语言中所有关键字都是全部小写的。在 C 语言中,许多关键字用来指定不同的类型,例如 int。还有一些关键字(如,if)用来控制程序中的执行顺序。在下表中 C 语言列出的关键字中,粗体表示的是 C90 标准新增的关键字,斜体表示 C99 标准新增的关键字,粗斜体表示的是 C11 标准新增的关键字。
auto |
extern |
short |
while |
break |
float |
signed |
_Alignas |
case |
for |
sizeof |
_Alignof |
char |
goto |
static |
_Atomic |
const |
if |
struct |
_Bool |
continue |
inline |
switch |
_Complex |
default |
int |
typedef |
_Generic |
do |
long |
union |
_Imaginary |
double |
register |
unsighed |
_Noreturn |
else |
restrict |
void |
_Static_assert |
enum |
return |
volatile |
_Thread_local |
如果关键字使用不当(如,用关键字作为变量名),编译器会将其视为语法错误。还有一些保留标识符(reserved identifier),C 语言已经指定了它们的用途或保留它们的使用权,如果你使用这些标识符来表示其它意思会导致一些问题。因此,尽管它们也是有效的名称,不会引起语法错误,也不能随便使用。保留标识符包括那些以下划线开头的标识符和标准库函数名,如 printf()。
二、有关数据类型的关键字
关键字 |
含义 |
char |
声明字符型变量或者函数,属于整型数据的一种 |
short |
修饰 int,声明短整型变量或函数,可省略被修饰的int |
int |
声明整型变量或者函数,通常为编译器指定的机器字长 |
long |
修饰 int,声明长整型变量或者函数,可省略被修饰的int |
float |
声明单精度浮点型变量或函数 |
double |
声明双精度浮点型变量或函数 |
unsigned |
修饰整型数据,声明无符号类型变量或函数 |
signed |
修饰整型变量,声明有符号类型变量或函数 |
struct |
声明结构体变量或函数 |
union |
声明共用体数据类型 |
enum |
声明枚举类型 |
void |
声明函数无返回值或无参数,声明无类型指针 |
三、有关控制语句的关键字
关键字 |
含义 |
if |
条件语句 |
else |
条件语句否定分支(与 if 连用) |
switch |
用于开关语句 |
case |
开关语句分支 |
default |
开关语句中的 “默认”分支,可选结构 |
for |
for 循环语句 |
do |
do...while 循环结构的循环体 |
while |
do...while 或 while 循环结构的循环条件 |
break |
跳出当前循环或 switch 分支结构 |
continue |
结束当前循环,开始下一轮循环 |
goto |
无条件跳转语句 |
return |
子程序/函数体返回语句(可以带参数,也可以不带参数) |
四、有关存储类型的关键字
关键字 |
含义 |
auto |
声明自动变量,有编译器自动分配和释放(通常在栈上分配) |
extern |
指定变量为外部变量,即在其它文件中声明 |
register |
声明寄存器变量,建议编译器将变量存储到寄存器中 |
static |
声明静态变量,分配在静态变量区,修饰函数时用于限定作用域 |
const |
声明只读变量 |
五、其它关键字
关键字 |
含义 |
sizeof |
计算数据类型长度 |
typeof |
用以给数据类型取别名 |
volatile |
说明变量在程序执行中可被隐含地改变 |