C语言关键字汇总

一、 数据类型关键字

1.基本数据类型(5个)
  void :声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果
  char :字符型类型数据,属于整型数据的一种
  int :整型数据,通常为编译器指定的机器字长
  float :单精度浮点型数据,属于浮点数据的一种
  double :双精度浮点型数据,属于浮点数据的一种

2. 类型修饰关键字(4个)
  short :修饰int,短整型数据,可省略被修饰的int。
  long :修饰int,长整形数据,可省略被修饰的int。
  signed :修饰整型数据,有符号数据类。
  unsigned :修饰整型数据,无符号数据类型。

3.复杂类型关键字(5个)
  struct :结构体声明
  union :共用体声明
  enum :枚举声明
  typedef :声明类型别名
  sizeof :得到特定类型或特定类型变量的大小

4.存储级别关键字(6个)

  auto :指定为自动变量,由编译器自动分配及释放。通常在栈上分配
  static :指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部
  register :指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数
  extern :指定对应变量为外部变量,即标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。
  const :与volatile合称“cv特性”,指定变量不可被当前线程/进程改变(但有可能被系统或其他线程/进程改变)。
  volatile :与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值。

二、 流程控制关键字

1.跳转结构(4个)
  return :用在函数体中,返回特定值(或者是void值,即不返回值)
  continue :结束当前循环,开始下一轮循环
  break :跳出当前循环或switch结构
  goto :无条件跳转语句

2.分支结构(5个)
  if :条件语句
  else :条件语句否定分支(与if连用)
  switch :开关语句(多重分支语句)
  case :开关语句中的分支标记
  default :开关语句中的“其他”分治,可选。

3.循环结构(3个)
  for :for循环结构,for(1;2;3)4;的执行顺序为1->2->4->3->2...循环,其中2为循环条件
  do :do循环结构,do 1 while(2); 的执行顺序是 1->2->1...循环,2为循环条件
  while :while循环结构,while(1) 2; 的执行顺序是1->2->1...循环,1为循环条件

========================================================================

 

在C99中新增了5个关键字:

 

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

 

 

  1. _Bool b1, b2;
  2. b1 = 99;
  3. b2 = -99;

 

打印b1, b2的值都将为1(true)。

 

包含stdbool.h后,可以直接用bool代替_Bool,同时也可以使用true和false表示真和假。
 
_Complex, _Imaginary:复数类型和虚数类型,C99提供了三种复数类型和虚数类型:float _Complex,double _Complex,long double _Complex和float _Imaginary,double _Imaginary,以及 long double _Imaginary。复数类型包括一个实部和一个虚部,虚数类型没有实部,只有虚部。
例:
  1. #include <complex.h>
  2. double _Complex x = 5.2; /* 实部等于 5.2,虚部为 0 */
  3. double _Complex y = 5.0 * i; /* 实部为 0,虚部为 5.0 */
  4. double _Complex z = 5.2 – 5.0 * i; /* 实部为 5.2,虚部为 5.0 */
同样在程序中包含complex.h后,可以用 complex来代表 _Complex,用imaginary来代表 _Imaginary,以及用 I来代表虚数单位 i,也就是 -1的平方根。
 

 

restrict:用来限定指针,表明指针是访问一个数据对象的唯一且初始化对象。作用是告诉编译器除了该指针,其他任何指针都不能对所指向的数据进行存取,以便编译器优化代码。
 
inline:内联函数,是为了解决C 预处理器宏存在的问题所提出一种解决方案,用来提高函数使用效率。内联函数使用inline关键字定义,并且函数体和申明必须结合在一起, 否则编译器将他作为普通函数对待。
  1. inline int function(int n);
  2. inline int function(int n)
  3. {
  4. return ((n%2)?1:0);
  5. }
内联函数把代码也加放入了符号列表中,避免了频繁调用函数对栈带来的消耗,达到优化代码的作用。所以内联函数本身不能太复杂。GCC对inline做了自己的扩展。

 

posted @ 2014-04-26 08:21  CloudPing  阅读(322)  评论(0编辑  收藏  举报