C - 关键字



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

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

autodoubleintstruct
breakelselongswitch
caseenumregistertypedef
charexternreturnunion
continueforsignedvoid
doifstaticwhile
defaultgotosizeofvolatile
constfloatshortunsigned

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

C 关键字示例

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

#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 返回类型

用户定义类型 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 个关键字,尽管之后添加了一些关键字。
广告