C - 关键字



关键字是在编译器中具有特殊含义的预定义词,它们不能用于任何其他目的。根据 C99 标准,C 语言有 32 个关键字。关键字不能用作标识符

下表列出了 C 语言中所有可用关键字(保留字)

autodoubleintstruct
breakelselongswitch
caseenumregistertypedef
charexternreturnunion
continueforsignedvoid
doifstaticwhile
defaultgotosizeofvolatile
constfloatshortunsigned

所有 C 语言中的关键字都使用小写字母,尽管在 C 语言中新添加的关键字在其中包含大写字母。C 语言是区分大小写的语言。因此,int 是一个关键字,但 INT 或 Int 未被识别为关键字。从 C99 开始引入的新关键字以下划线字符开头。编译器检查源代码中所有关键字的语法正确性,然后将其转换为机器代码。

C 关键字示例

在以下程序中,我们使用关键字作为标识符,即作为用户定义函数的名称,这将导致编译错误。

Open Compiler
#include <stdio.h> void register(int, int); int main () { /* variable definition: */ int a=5, b=7; register(a,b); return 0; } void register(int a, int b) { printf("%d", a+b); }

错误

main.c:3:15: error: expected identifier or '(' before 'int'
    3 | void register(int, int);
      |               ^~~
main.c: In function 'main':
main.c:8:14: error: expected ')' before ',' token
    8 |    register(a,b);
      |              ^
      |              )
main.c: At top level:
main.c:12:15: error: expected identifier or '(' before 'int'
   12 | void register(int a, int b)
      |               ^

错误的原因是我们使用关键字 register 作为用户定义函数的名称,这是不允许的。

ANSI C 版本有 32 个关键字。这些关键字是程序逻辑的基本元素。这些关键字可以大致分为以下类型:

  • 基本数据类型
  • 用户定义类型
  • 存储类型
  • 条件语句
  • 循环和循环控制
  • 其他

让我们讨论每类关键字。

基本类型 C 关键字

这些关键字用于变量声明。C 语言是一种静态类型语言,必须声明要使用的变量。C 语言中的变量使用以下关键字声明

int 声明一个整型变量
long 声明一个长整型变量
short 声明一个短整型变量
signed 声明一个有符号变量
double 声明一个双精度变量
char 声明一个字符型变量
float 声明一个浮点型变量
unsigned 声明一个无符号变量
void 指定 void 返回类型

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

用户定义类型 C 关键字

C 语言允许您根据需要定义新的数据类型。用户定义类型具有一个或多个基本类型元素。

以下关键字用于用户定义的数据类型:

struct 声明一个结构体类型
typedef 创建一个新的数据类型
union 声明一个联合体类型
enum 声明一个枚举类型

存储类型 C 关键字

以下关键字集称为存储说明符。它们指示变量存储在内存中的位置。变量的默认存储类型是 auto,尽管您可以要求编译器以特定的存储属性形成变量。

auto 指定自动存储类别
extern 声明变量或函数
static 指定静态存储类别
register 指定寄存器存储类别

条件语句 C 关键字

以下关键字集可帮助您在程序中设置条件逻辑。用 if 和 else 关键字表示的条件逻辑为条件提供两种替代操作。对于多分支,请使用switch – case结构。在 C 语言中,汇编程序中的跳转操作由goto 关键字实现。

goto 跳转到带标签的语句
if 开始一个 if 语句
else 在 if 条件为假时执行
case 标记 switch 语句中的语句
switch 开始一个 switch 语句
default 指定 switch 语句中的默认语句

循环和循环控制 C 关键字

重复或迭代是算法的一个重要方面。C 语言提供了形成循环的不同替代方案,以及控制循环行为的关键字。每个关键字都允许您形成具有不同特性和用途的循环。

For 开始一个for 循环
do 开始一个do-while 循环
while 开始一个while 循环
continue 跳过循环的一次迭代
break 终止循环或 switch 语句

其他 C 关键字

以下其他关键字也极其重要

const 指定一个常数值
Sizeof 确定数据类型的尺寸
Volatile 编译器变量的值可能随时更改

在 C99 版本中,增加了五个关键字:

  • _Bool
  • _Complex
  • _Imaginary
  • inline

在 C11 中,增加了七个关键字

  • _Alignas
  • _Alignof
  • _Atomic
  • _Generic
  • _Noreturn
  • _Static_assert

当 C23 标准发布时,它将引入 14 个新关键字:

  • alignas
  • alignof

  • 布尔型
  • 编译时常量
  • 空指针
  • 静态断言
  • 线程局部
  • typeof
  • typeof_unqual
  • _Decimal128

大多数最近保留的关键字以一个下划线后跟一个大写字母开头,因为现有的程序源代码不应该使用这些标识符。

使用关键字时必须牢记以下几点

  • 关键字由编程语言保留,并具有预定义的含义。它们不能用作变量或函数的名称。
  • 每个关键字都必须根据其使用规定的语法使用。如果违反语法,编译器将报告编译错误。
  • C 是一种最小的计算机语言之一,其 ANSI C 版本只有 32 个关键字,尽管之后添加了一些关键字。
广告