C语言中static的使用

在开发过程中,我们经常会需要定义一些static类型的变量或者函数,我们接下来来具体聊一下static;

1、修饰变量

     当static来修饰一个变量时,就注定了这个变量的可见范围和生命周期;

     (1)当修饰全局变量时

             static int flag1 = 0;

             int flag2 = 0;

             这两个变量存储在全局数据区,flag1只在本文件可见,其他文件中不可见;flag2可在其他文件中通过声明extern int flag2来使用;

      (2)当修饰局部变量时

             void fun(void){

              static int temp1;

               int temp2 = 0;

               ......................

               return;

               }

              函数中,temp1为局部静态变量,存储在全局数据区,temp2为局部变量,存储在栈上;但是随着函数的退出,temp2的生命周期也就结束,但是temp1依然有效,只不       过可见范围为本函数内,下次再次进入本函数时,对temp1的任何修改都是在上次修改的基础上进行,也就是说temp1有记忆性。

2、修饰函数

     static修饰的函数主要是在本文件中使用的函数,不对外提供,Linux内核中的任何文件中都有此类型的静态函数;

     static inline void  enable_noirq(void){

      ................

      }

      使用static修饰函数的好处就是,所有文件可以定义同名的函数,不用考虑重名导致的编译报错;

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值