美文网首页
C语言static与extern的初识

C语言static与extern的初识

作者: 王伯卿 | 来源:发表于2018-06-26 22:27 被阅读0次

static为静态变量。

static变量若声明在所有函数之外,则该变量的作用域为当前文件,其他文件不可访问该变量。

static变量若声明在函数之内,该变量的作用域在函数之内。除该函数以外,其他的函数不能访问该变量。且函数的结束不会使变量被释放,下次重启该函数的时候,此变量的值仍然被记忆。

让我们看下面这个例子。

#include <stdio.h>

void sta_func(){
  static int i=0;
  printf("%d\n",i);
  i++;
}

void func(){
  int i=0;
  printf("%d\n",i);
  i++;
}

int main(void){
  sta_func();
  sta_func();
  func();
  func();
  return 0;
}

最后输出的结果为:

0
1
0
0

很明显,sta_func函数中的i变量,即使在函数结束后,仍然没有被释放。在第二次重启的时候,仍旧启用的是之前的旧值。而func函数却不同,在函数结束后,i的值就已经被释放。

extern为全局变量。如果一个变量声明为extern变量,则所有文件都可以访问该变量并且修改。

如果extern变量和static变量一起定义则会报重复定义的error。

相关文章

  • C语言static与extern的初识

    static为静态变量。 static变量若声明在所有函数之外,则该变量的作用域为当前文件,其他文件不可访问该变量...

  • static 和 extern 关键字

    static 和 extern 是c语言中的两个关键字,是用来修饰变量和函数. 1.static和extern修饰...

  • 存储类型说明符

    C语言中的存储类型说明符 typedef extern static auto register __block说...

  • C/C++关键字介绍

    一、 typedef typedef为C/C++的关键字,与auto、extern、mutable、static、...

  • C语言static 和extern

    1. static和extern对函数的作用 外部函数:定义的函数能被本文件和其他文件访问1> 默认情况下所有函数...

  • extern, static, const 和 inline

    前言 在使用 Objective-C 编程的时候,偶尔也会使用到 C 语言的一些特性,extern、static、...

  • extern, static, const 和 inline

    在使用 Objective-C 编程的时候,偶尔也会使用到 C 语言的一些特性,extern、static、con...

  • const、static、extern、宏

    const static extern 宏 const与宏的区别 static和const的联合使用 extern...

  • C语言备忘

    C语言 1. 数据类型 2. 常量 3. 存储类 auto register static extern 4. 数...

  • static extern const volatile

    static extern const volatile C语言中的对于变量的定义方式有很多种,使用的地方也有所不...

网友评论

      本文标题:C语言static与extern的初识

      本文链接:https://www.haomeiwen.com/subject/byhvyftx.html