美文网首页
static 在C语言中的作用

static 在C语言中的作用

作者: 稳_4ed5 | 来源:发表于2018-01-25 17:50 被阅读0次

转载: C语言中static修饰符的意义

1、由static修饰的变量,其存储类型为全局静态区,变量在程序的整个运行过程中不会被销毁,并且只会被初始化1次。

void func1()
{
    static int var1 = 1;        // 在全局静态区分配变量var1的存储空间
    int var2 = 1;        // 在栈上分配var2的存储空间
    var1 = var1+1;   
    var2 = var2+1;
    printf("var1=%d, var2=%d", var1, var2)
}

void main()
{
    func1();
    func1();
    func1();
}

代码输出:

“var1=2, var2=2”
“var1=3, var2=2”
“var1=4, var2=2”

2、通过static修饰,可以把函数的作用域限定在本源文件内,把全局变量的作用域限定在本源文件内

由于全局变量和函数的作用域是所有源文件,所有源文件引用的是同一个全局变量和函数,因此C语言不允许在2个源文件内定义相同的全局变量、函数,在代码链接阶段会提示链接错误。通过添加static修饰,可以让2个源文件定义相同的全局变量和函数,但是注意这2个源文件引用的全局变量和函数是独立的。

static int var1 = 1;       // 限定全局变量var1仅在本源文件可见
static void func1()        // 限定函数仅在本源文件可见
{
    static int var2 =1;     // var2是静态变量,不是栈变量,只被初始化一次
}       

void main()
{
    func1();
}

相关文章

  • static用法总结

    1 C语言中 在C语言中,static有三个明显作用: 函数体内static变量,不会随函数结束而消亡。再次调用该...

  • static 在C语言中的作用

    转载: C语言中static修饰符的意义 1、由static修饰的变量,其存储类型为全局静态区,变量在程序的整个...

  • static和const的用途,const与define的区别

    一.Static的作用详述 摘要:C语言中,static的字面意思很容易把我们导入歧途。本文将对C/C++中Sta...

  • static的作用

    C语言中static 的作用 隐藏。变量和函数,如果加了static修饰,就会其它源文件隐藏。利用这一特性可以在不...

  • static作用(修饰函数、局部变量、全局变量)

    static作用(修饰函数、局部变量、全局变量) 在C语言中,static的字面意思很容易把我们导入歧途,其实它的...

  • 透彻理解static

    static作用(修饰函数、局部变量、全局变量) 在C语言中,static的字面意思很容易把我们导入歧途,其实它的...

  • OC中的 static、extern 、const关键字

    C 语言中 static 关键字的作用 在模块(文件)内的 static 全局变量可以被模块内所用函数访问,但不能...

  • Static关键字的作用

    在C++、C、Java等高级语言中均有关键字static C语言中 static的含义不是存储方式,而是指对函数的...

  • c/c++ 知识点

    1.static关键字 (from百度知道)在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有...

  • C语言中static的常见作用

    有兴趣学习c/c++编程的小伙伴可以进群:941636044一起交流哦~ C程序一直由下列部分组成: 1)正文段...

网友评论

      本文标题:static 在C语言中的作用

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