C语言关键字

C语言关键字

1. 核心特征

  • 固定含义: 编译器看到这些词,就知道要做特定的事情(比如 int 就是定义整数,if 就是做判断)。
  • 不可占用:不能用这些词来给你的变量、函数或数组命名。
    • int if = 10; (错误!if 是关键字,不能当变量名)
    • int my_value = 10; (正确)
  • 全部小写: C语言的所有关键字都是小写的。VOIDIf 就不是关键字,可以作为变量名(虽然不建议这么做)。

2. 标准的32个关键字(C89标准)

大学考试和基础教程中,通常只要求掌握这32个。为了好记,我们可以按功能分类:

A. 数据类型类 (12个)

用来定义变量是什么“材质”的。

  • 基本类型: char, double, float, int, long, short, void
  • 修饰类型: signed (有符号), unsigned (无符号)
  • 复杂类型: struct (结构体), union (共用体), enum (枚举)

B. 流程控制类 (12个)

指挥程序该往哪里走。

  • 循环: for, do, while
  • 分支/选择: if, else, switch, case, default
  • 跳转/中断: break (跳出), continue (继续下次), return (返回), goto (跳转)

C. 存储类型与修饰类 (4个)

决定变量存在哪里,或者有什么特性。

  • auto (自动变量,默认的,平时很少写)
  • static (静态变量,很重要!)
  • extern (外部声明)
  • register (寄存器变量,建议编译器放寄存器里)

D. 其他类 (4个)

  • const (定义常量,只读)
  • sizeof (计算大小,注意:它不是函数,是关键字)
  • typedef (给类型起别名)
  • volatile (易变的,防止编译器过度优化,嵌入式开发中常用)

3. 容易混淆的“假关键字”

以下这些都不是关键字:

  1. 预处理指令:
    • include, define
    • 原因: 它们以 # 开头(#include),在编译之前的“预处理”阶段就被处理掉了,编译器真正开始工作时看不到它们。
  2. 标准库函数:
    • printf, scanf, pow, main
    • 原因: main 是函数名,printf 是库里写好的函数。虽然它们很重要,但从语法上讲,你完全可以自己写个函数叫 printf(虽然会覆盖标准库的,不推荐),编译器不会报语法错误。

4. 总结图示

你可以这样记忆:

关键字 = C语言的法律条文(不可更改,不可挪用)

库函数 (printf) = 政府提供的公共设施(通常直接用,但理论上你可以自己造一个)

预处理 (define) = 施工前的图纸批注(不属于建筑物本身)


C语言关键字
http://example.com/2026/01/13/C语言关键字/
作者
王柏森
发布于
2026年1月13日
许可协议