C 语言的关键字(也叫保留字)是预先定义好的、具有特殊含义的标识符,用户不能将其用作变量名、函数名等自定义标识符。C 语言标准(C89/C99/C11/C17)定义的关键字数量和范围略有扩展,以下按功能分类整理,并说明核心特性:
一、核心关键字(C89 基础版,共 32 个)
1. 数据类型相关(12 个)
| 关键字 | 用途说明 | 示例 |
|---|
char | 字符型(1 字节) | char c = 'a'; |
short | 短整型(2 字节) | short s = 10; |
int | 整型(4 字节,依平台) | int num = 100; |
long | 长整型(4/8 字节) | long l = 123456L; |
float | 单精度浮点型 | float f = 3.14f; |
double | 双精度浮点型 | double d = 3.14159; |
void | 无类型(函数返回 / 指针) | void func(); |
signed | 有符号类型(默认) | signed int a = -5; |
unsigned | 无符号类型 | unsigned int b = 5; |
enum | 枚举类型 | enum Color {RED, GREEN}; |
struct | 结构体类型 | struct Student {char name[20];}; |
union | 共用体(联合体) | union Data {int i; char c;}; |
2. 存储类说明(5 个)
| 关键字 | 用途说明 | 示例 |
|---|
auto | 自动变量(栈存储,默认) | auto int x = 1; |
register | 寄存器变量(建议 CPU 寄存器存储) | register int cnt = 0; |
static | 静态变量(全局 / 局部静态) | static int count = 0; |
extern | 外部变量 / 函数声明 | extern int global_var; |
const | 只读变量(不可修改) | const int MAX = 100; |
3. 控制语句相关(12 个)
(1)分支 / 条件
| 关键字 | 用途说明 | 示例 |
|---|
if | 条件判断 | if (num > 0) {...} |
else | if 的分支 | else {...} |
switch | 多分支选择 | switch (n) {case 1: ...;} |
case | switch 分支标签 | case 2: break; |
default | switch 默认分支 | default: ...; |
(2)循环
| 关键字 | 用途说明 | 示例 |
|---|
for | 循环语句 | for (int i=0; i<10; i++) {...} |
while | 循环语句(先判断后执行) | while (i < 10) {...} |
do | 循环语句(先执行后判断) | do {...} while (i < 10); |
(3)跳转 / 终止
| 关键字 | 用途说明 | 示例 |
|---|
break | 跳出循环 /switch | break; |
continue | 跳过本次循环剩余部分 | continue; |
goto | 无条件跳转(慎用) | goto end; |
4. 函数 / 返回(1 个)
| 关键字 | 用途说明 | 示例 |
|---|
return | 函数返回值 | return 0; |
5. 类型修饰(2 个)
| 关键字 | 用途说明 | 示例 |
|---|
sizeof | 计算类型 / 变量所占字节数 | int size = sizeof(int); |
typedef | 类型重命名 | typedef int INT; INT a = 10; |
二、C99 新增关键字(9 个)
| 关键字 | 用途说明 | 示例 |
|---|
_Bool | 布尔类型(true/false) | _Bool flag = 1; |
_Complex | 复数类型 | _Complex double c; |
_Imaginary | 虚数类型 | _Imaginary float f; |
inline | 内联函数(减少函数调用开销) | inline int add(int a, int b) {return a+b;} |
restrict | 指针限制(唯一访问该内存) | int *restrict p = malloc(4); |
_Alignas | 内存对齐指定 | _Alignas(8) int a; |
_Alignof | 获取类型对齐值 | size_t s = _Alignof(int); |
_Static_assert | 编译期断言 | _Static_assert(1==1, "error"); |
volatile | 易变类型(防止编译器优化) | volatile int flag = 0; |
三、C11 新增关键字(1 个)
| 关键字 | 用途说明 | 示例 |
|---|
_Noreturn | 声明函数无返回(如 exit) | _Noreturn void func() {exit(1);} |