static在C中的作用?

昨天面试一外企,被问到这个问题,看似如此简单,还是打错了。

问:static在C中有什么作用?

答:static在C中用于修饰全局变量、局部变量以及函数。static的第1个作用是隐藏。被static修饰的全局变量和函数不具有全局可见性,亦即所有未加static修饰的全局变量和函数都具有全局可见性。例如,一下两个文件就编译通不过:

/*      file1.c       */
static int a;


 

/*       file2.c            */
main(){
     a++;
}


 

但是这样以下便是可以的:

/*            file1.c          */
int a;


 

/*          file2.c          */
#include <stdio.h>
main(){
      printf("a=%d\n", a);
}


 

static 作为函数的前缀仅仅起到了隐藏的作用,修饰变量时除此之外却还有其他的功能:让所修饰的变量存储在静态数据区并且在程序启动时初始化为0. static 修饰局部变量时,其作用域仅限于所声明的块,尽管程序退出该块以后该静态局部变量依然存在。

 

更详细的总结可以参考:http://blog.csdn.net/daibei0402/article/details/5980560

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值