C 关键字

C 关键字简介

在 C 语言中,关键字指的是 C 语言本身 “已经在使用” 的名字,因为我们在给变量函数结构体等命名时,是不能使用它们作为名字的。关键字是 C 语言预先保留的标识符,具有特殊的含义,不能用于其他用途(如变量名、函数名等)。

C 语言的标准在不断发展。最初的 C 语言标准(C90)定义了 32 个关键字。后续的 C99 标准(1999 年)新增了 5 个关键字,C11 标准(2011 年)又新增了 7 个关键字。C90 是最早的标准化版本,C99 和 C11 是对 C 语言的扩展和改进。目前,学习 C 语言通常会基于这些标准之一,而 C11 是最新被广泛采用的标准。

在最新版的 C 语言(即 C11)中,所有的关键字如下表所示。

C 语言关键字(C11 标准)
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 _Alignas _Alignof _Atomic
_Static_assert _Noreturn _Thread_local _Generic

示例:C 变量名使用关键字

#include <stdio.h>

int main(void)
{
    int void = 2025;
    printf("%d", void);
    return 0;
}

在编译代码时,会发现直接报错了。这是因为 void 是 C 语言的关键字,如果变量名使用了关键字,就会编译报错。

实际上,我们无需编译就可以发现代码是有问题的。VSCode 等工具会自动给有问题的代码标红,如下图所示。

C 变量名使用关键字

C 关键字分类

从分类的角度来看,C 语言的关键字分为以下几大类:

  • 数据类型关键字:用于声明数据类型,如 short、int、long、signed、unsigned、float、double、char、enum、struct、union、void。
  • 控制语句关键字:用于编程控制,如 if、else、switch、case、default、goto、do、while、for、break、continue。
  • 存储类型关键字:用于声明变量的存储类型,如 auto、extern、register、static。
  • 其他关键字:用于编程的其他功能,如 const、sizeof、typedef、volatile。
  • C99 标准新增关键字: inline、restrict、_Bool、_Complex、_Imaginary。
  • C11 标准新增关键字: _Alignas、_Alignof、_Atomic、_Static_assert、_Noreturn、_Thread_local、_Generic。

C99 和 C11 新增的关键字是为了支持 C 语言的现代化发展,例如 inline 用于建议编译器进行内联优化,restrict 用于指针优化,_Bool 引入了布尔类型等。

提示: 本节列举了 C 语言常见关键字,只是方便小伙伴们查询,并不是叫大家记忆。所以大家别傻乎乎地一个个去记忆。实际上,对于这些关键字,等学到了后面,自然而然就会认得。就算不认得,等需要的时候再回到这里查一下就行了。

上一篇: C 常量

下一篇: C 标识符

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号