设为首页 加入收藏

TOP

C语言中static的使用
2015-01-22 21:37:43 来源: 作者: 【 】 浏览:74
Tags:言中 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修饰函数的好处就是,所有文件可以定义同名的函数,不用考虑重名导致的编译报错;

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇IAR C语言嵌入汇编问题 下一篇C语言可变长参数实现原理

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: