一、关键字和保留标识符
  关键字 就是被 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 | 
说明变量在程序执行中可被隐含地改变 |