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");

}

 

转载于:https://www.cnblogs.com/liuxingchen/p/5718150.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值