静态变量和全局变量的区别(static关键共有多少种用法)

 分类:IT知识时间:2023-04-13 07:31:05点击:

1、修饰变量(局部和全局变量)

    ①静态全局变量:

    在全局数据区分配内存;未经初始化的静态全局变量会被程序自动初始化为0(自动变量的值是随机的,除非它被显式初始化);

    作用域仅限于变量被定义的文件中。

全局变量和全局静态变量的区别:

    1)全局变量是不显式用static修饰的全局变量,但全局变量 默认是静态的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,

    通过extern 全局变量名的声明,就可以使用全局变量。

    2)全局静态变量是显式用static修饰的全局变量,作用域是所在的文件,其他的文件即使用extern声明也不能使用。

    ② 静态局部变量

    static int j;

    void fun1 (void)

    {

    static int i = 0;

    i++;

    }

    void fun2 (void)

    {

    j = 0;

    j++;

    }

    int main(void)

    {

    int k;

    for(k = 0; k < 10; k++)

    {

    fun1();

    fun2();

    }

    return 0;

    }

2 修饰函数

    1、静态函数

    在函数的返回类型前加上static关键字,函数即被定义为静态函数。静态函数与普通函数不同,它只能在声明它的文件当中可见,

    不能被其它文件使用。其它文件中可以定义相同名字的函数,不会发生冲突。

除注明外的文章,均为来源:老汤博客,转载请保留本文地址!
原文地址: