C语言的关键字

关键字也称为保留字,C89标准有32个,这些单词在C语言中有特别的含义,程序员不能把它用于变量或函数的命名。

1、C89标准

  auto:声明自动变量。
  break:跳出当前循环。
  case:开关语句分支。
  char:声明字符型变量或函数返回值类型。
  const:声明只读变量。
  continue:结束当前循环,开始下一轮循环。
  default:开关语句中的“默认”分支。
  do:循环语句的循环体。
  double:声明双精度浮点型变量或函数返回值类型。
  else:条件语句否定分支(与if连用)。
  enum:声明枚举类型。
  extern:声明变量或函数是在其它文件或本文件的其他位置定义。
  float:声明浮点型变量或函数返回值类型。
  for:一种循环语句。
  goto:无条件跳转语句。
  if:条件语句。
  int:声明整型变量或函数。
  long:声明长整型变量或函数返回值类型。
  register:声明寄存器变量。
  return:子程序返回语句(可以带参数,也可不带参数)。
  short:声明短整型变量或函数。
  signed:声明有符号类型变量或函数。
  sizeof:计算数据类型或变量长度(即所占字节数)。
  static:声明静态变量。
  struct:声明结构体类型。
  switch:用于开关语句。
  typedef:用以给数据类型取别名。
  unsigned:声明无符号类型变量或函数。
  union:声明共用体类型。
  void:声明函数无返回值或无参数,声明无类型指针。
  volatile:说明变量在程序执行中可被隐含地改变。
  while:循环语句的循环条件。

C语言的关键字无需背诵,如果程序用不小心用了关键字给变量命名,编译时会报错,用多了就熟悉了。

2、C99标准

1999年12月16日,ISO推出了C99标准,该标准新增了5个C语言关键字:

1)_Bool:布尔类型,用来表示真或假,零表示假,非零表示真。所有非零的数赋值给布尔型变量,最终的值还是1。

2)_Complex、_Imaginary:复数类型和虚数类型,C99提供了三种复数类型和虚数类型:float _Complex,double _Complex,long double _Complex和float _Imaginary,double _Imaginary,以及 long double _Imaginary。复数类型包括一个实部和一个虚部,虚数类型没有实部,只有虚部。

3)restrict:用来限定指针,表明指针是访问一个数据对象的唯一且初始化对象。作用是告诉编译器除了该指针,其他任何指针都不能对所指向的数据进行存取,以便编译器优化代码。

4)inline:内联函数,是为了解决C预处理器宏存在的问题所提出一种解决方案,用来提高函数使用效率。内联函数使用inline关键字定义,并且函数体和申明必须结合在一起,否则编译器将他作为普通函数对待。

3、C11标准

2011年12月8日,ISO发布C语言的新标准C11,该标准新增了7个C语言关键字:

1)_Alignas:设置内存中对齐方式,最小是8字节对齐,可以是16,32,64,128等。

2)_Alignof:查询其运算数类型的对齐要求的运算符。

3)_Atomic:原子类型说明符和限定符。并发程序设计把程序执行分成可以同时执行的多个线程。这给程序设计带来了新的挑战,包括如何管理访问相同数据的不同线程。C11通过包含可选的头文件stdatomic.h和threads.h,提供了一些可选的(不是必须实现的)管理方法。值得注意的是,要通过各种宏函数来访问原子类型。当一个线程对一个原子类型的对象执行原子操作时,其他线程不能访问该对象。

4)_Static_assert:静态断言,用于编译期间的断言。

5)_Noreturn:用于函数声明中,指定函数不会由于执行到 return 语句或抵达函数体结尾而返回(可通过执行 longjmp 返回)。若声明 _Noreturn 的函数返回,则行为未定义。若编译器能检测此错误,则推荐编译器诊断。

6)_Thread_local:提供了线程内存储变量的能力,这些变量不同之处在于每一个线程读取的变量是对应的互相独立的。通过get和set方法就可以得到当前线程对应的值。

7)_Generic:用于泛型编程。

4、获取视频教程

百万年薪程序员录制,《C/C++高性能服务开发基础》视频教程已在CSDN学院发布,优惠价12元,地址如下:
https://edu.csdn.net/course/play/29402

5、版权声明

C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。

来源:C语言技术网(www.freecplus.net

作者:码农有道

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C语言技术网-码农有道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值