C语言static

static

2016年7月28日 星期四

14:03

只要用static修改的全局变量就是内部全局变量,只能在当前文件中使用,

这样就可以提高我们全局变量的安全性,

如果多个文件中存在同名的内部全局变量,相互不会影响

//    extern :

    //用于声明一个外部全局变量,其他的文件可以访问

//    static :

    //用于定义一个内部全局变量,只能当前文件访问

    //声明和定义的区别 :

    //声明不会开辟存储空间

    //定义会开辟存储空间

// 只要在函数的返回值前加上一个extern就可以让函数变为一个外部函数,由于默认就是外部函数,实际开发中extern没人写

// 在全局变量中如果 用extern为关键字声明全局变量,并不会开辟储存空间

// 在全局变量中如果 用static为关键字声明全局变量,定义一个全局变量只能在本文件中使用

// 如果extern写在函数的实现中,代表定义一个外部函数

// 如果extern写在函数的声明中,代表声明一个外部函数

 

#include <stdio.h>

void test();

int main(int argc, const char * argv[]) {

    test();

    test();

    return 0;

}

 

void test()

{

    //局部变量

    int a = 0;

    //当使用static 来修饰局部变量,那么会延长局部变量的声明周期,

    //并且会改变局部变量存储的位置,将局部变量从栈区转移到静态区中

    

    //只要使用static 修改局部变量后,当执行到定义局部变量的代码就会分配存储空间,

    //但是只有程序结束才会释放该存储空间

    static int  b = 0;

    a++;

    b++;

    printf("a = %i \n",a);

    printf("b = %i \n",b);

    printf("******* \n");

}

 

posted @ 2016-07-29 14:01  偷吃的喵  阅读(479)  评论(0编辑  收藏  举报