关键字

  C语言中一共有32个关键字,每个都有特定的含义,是程序必不可少的部分,这些关键字是规定好了的,因此不能把关键字用来定义变量名。下面列出所有的关键字:

auto,breakcasecharconstcontinuedefaultdodouble

elseenumexternfloatforgotoifintlong,register,

returnshort,signed,sizeofstaticstructswitch,typedef,

union,unsigned,voidvolatilewhile

常见关键字

typedef

  此关键字是类型定义关键字,可以理解为给其它关键字起别名,例如:

typedef unsigned int unint;

  这条句的作用就是,将

unsigned int

  这条较长的关键字重新命名,后续就可以使用

uint_32

  来代替,然而起到的效果却是一样的,这样在后续写代码的过程中可以省下不少的功夫。

static

  1)修饰局部变量,使局部变量的生命期延长至整个程序的存在时间。也可以理解为,在程序中结束一个函数后,在此函数中被该关键字修饰的变量不会被释放掉,等到再次调用该函数时,被修饰变量仍保持着上一次函数结束时的状态。调用下面这段函数,观察i和j的输出值,就能体会到其中的含义。

#include <stdio.h>//添加头文件
#include <stdlib.h>
void test()
{
        //定义局部静态变量
        int j=0;
    static int i = 0;
    i++;
        j++;
    printf("i=%d j=%d\n", i,j);
}
//主函数,函数入口
int main()
{
        //利用循环调用十次函数
    for (int i = 0; i < 10; i++)
    {
        test();
    }
        return 0;  
}

  2)修饰全局变量:经static修饰过得全局变量将不能再在其它源文件中进行使用。

  3)修饰函数:经static修饰的函数也将不能在其它源文件中进行使用,编译会报错。

#define

  在前提到过该关键字,但是它的本质其实是做简单的文本替换,但是虽然好用,却也存在着缺陷,如下:

#include <stdio.h>//添加头文件
#include <stdlib.h>
//宏定义
#define ADD(x, y,z)  x + y*z
int main()//主函数,函数入口
{
        //调用宏
    int sum = ADD(2, 3,4);
    printf("%d\n", sum);
        return 0;   
}

  若是宏定义一个计算表达式,因为它只是简单的文本替换,那么他是不会判定你算术运算符的优先关系的,所以在使用的时候一定要注意。