C语言关键字用法

static

  • 全局静态变量:该全局变量只能在本文件使用,即使在别的文件中使用extern也不行。在别的文件可以定义同名变量,不会冲突。
  • 局部静态变量:该局部变量在函数生命周期外依然存在,如下,每次调用输出的结果递增1。
static void output(void) {
    static int temp = 10;
    printf("%d\n",temp);
    temp++;
}
  • 静态函数:静态函数只能在本文件使用。在别的文件可以定义同名函数,不会冲突。
  • 特殊用法:在头文件中使用。使用static可以在不同文件中使用 include 包含头文件时产生不同的实体,这样就不会出现重复定义的情况了。第一次看到 static 在头文件使用的时候是和 inline 一起使用的,本来一个内联函数放在头文件中声明为 inline 就可以了,为什么还要加上 static 呢?这是为了在不同文件中使用 include 包含头文件时能够产生不同的内联函数(同名),这样就不会出现重复定义的情况了。同理,如果你在头文件中用 static 申明一个变量,那么每次使用 include 包含这个头文件的时候都会产生一个变量,虽然它们的名字相同,但是它们内存位置却是不同的,比如张三这个名字,虽然都叫张三,但可能他们不是同一个人,所做的一些行为也就不一样了。

你可能感兴趣的:(c语言,java,jvm)