美文网首页
C语言复习之extern和static

C语言复习之extern和static

作者: Coder大雄 | 来源:发表于2016-09-17 22:12 被阅读32次

static和extern关键字对变量的作用

  • extern
    1.在main函数前面对变量a进行提前声明。也就是让main函数知道变量a的存在就行了,至于变量a定义在哪个位置,main函数不用管。
extern int a;//声明
int main(int argc, const char * argv[]) {
    a = 10;
    return 0;
}
int a;//定义
//声明和定义是两码事。你不能省略定义,只留下声明,因为extern是用来声明一个已经定义过的变量。

2.可以将全局变量a声明为局部变量后再使用

void text ();
int main(int argc, const char * argv[]) {
    extern int a;
    a = 10;
    text();
    return 0;
}
int a;
void text () {
    printf("%d",a);//调用的是全局变量a;
}
  • static
    1.修饰局部变量:被关键字static修饰的局部变量也是静态变量。
int a;
void test() {
     static int b = 0;
     b++;
     int c = 0;
     c++;
     printf("b=%d, c=%d \n", b, c);
 }
int main() {
     int i;
     // 连续调用3次test函数
     for (i = 0; i<3; i++) {
         test();
     }
     return 0;
}
//打印的结果
/*
b=1, c=1 
b=2, c=1 
b=3, c=1 
*/
//因为变量b是静态变量,所以它只会被创建一次,而且生命周期会延续到程序结束。因为它只会创建一次,所以代码static int b = 0 只会执行一次,下次再调用test函数时,变量b的值不会被重新初始化为0。

2.修饰全局变量:很多时候,我们并不想让源文件中的全局变量跟其他源文件共享,相当于私有的全局变量,那么你就得用static关键字来定义变量。总结:如果在定义全局变量的时候加上static关键字,此时static的作用在于限制该全局变量的作用域,只能在定义该全局变量的文件中才能使用,跟其他源文件中的同名变量互不干扰

未完。。。

相关文章

  • C语言复习之extern和static

    static和extern关键字对变量的作用 extern1.在main函数前面对变量a进行提前声明。也就是让ma...

  • static 和 extern 关键字

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

  • C语言static 和extern

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

  • 存储类型说明符

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

  • 9.C语言 static和extern

    对函数的作用 外部函数: extern用于声明或定义外部函数定义的函数能被本文件和其他文件访问。不允许有同名的外部...

  • extern, static, const 和 inline

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

  • extern, static, const 和 inline

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

  • C语言备忘

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

  • static extern const volatile

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

  • C语言基础(二)指针

    C语言存储类 1:suto,register,static ,extern 在32位操作系统中,指针占4个字节,在...

网友评论

      本文标题:C语言复习之extern和static

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