有关static extern的问题~

ghostmirror 2003-12-08 12:01:44
就是用static修饰的变量和函数与一般的函数与变量有什么区别

extern int i;是什么意思??
...全文
48 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghostmirror 2003-12-11
  • 打赏
  • 举报
回复
3x all
zhangfjj 2003-12-08
  • 打赏
  • 举报
回复
static 修饰内部变量时,使得变量存储在静态存储区,也就扩大了其生命期
修饰外部变量时,使得该外部变量的作用域限于本文件,其他文件是不能引用被static修饰的外部变量的
函数默认是外部的,当用static修饰函数时,其作用与修饰外部变量相似,缩小其作用域。
extern int i;是进行变量声明,i是一个int型的变量,其定义在别的地方,可以是本文件中的其他地方,也可以是其他文件中。就这些,够了吗?
seabreeze9802 2003-12-08
  • 打赏
  • 举报
回复
我把static看成是一个内部的全局变量,这样比较好理解。
njuhuangmy 2003-12-08
  • 打赏
  • 举报
回复
还是喜欢 static

static修饰一个函数,表明这个函数只能在这个文件内起作用。

主要是防止和别人定义的文件重名。

extern 显式申明 外部变量或者 外部函数
hanyixin 2003-12-08
  • 打赏
  • 举报
回复

static修饰外部变量时,使得该外部变量的作用域限于本文件,这种方法已经被声明为废弃的,推荐的方法是使用匿名名字空间。
例如:
static int local;
推荐改用:
namespace
{
int local;
}

fierygnu 2003-12-08
  • 打赏
  • 举报
回复
C里的变量有两个属性:作用域和生存期。static可以改变全局变量的作用域(限定在本模块里)和局部变量的生存期(与全局变量一样长寿)。
static作用于全局函数时与作用于全局变量时相同。
C++里static还可以作用于成员函数和成员变量,使其被访问时不需要类实例,即把这些元素变成了该类所有对象的共有属性。当然这样成员变量的生存期也变成了全局的。

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧