请教下static的问题,期待大家的帮助!

NowDoIT 2013-07-27 03:46:54
在C语言中,如果项目工程有很多文件。在其中的一个文件中有如下定义:

static int a;
int b;
可不可以理解成?
1、变量a只能用于本文件内。
2、变量b是全局变量,其它文件中可以访问使用。

谢谢大家!
...全文
325 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
NowDoIT 2013-08-12
  • 打赏
  • 举报
回复
谢谢大家的详细解决,很抱歉这么晚才结贴。 均分散分,谢谢大家!
常如意 2013-08-05
  • 打赏
  • 举报
回复
就是这么理解的
fldmxp 2013-08-03
  • 打赏
  • 举报
回复
我才知道这样写还有这样的用意,不过我觉得这样的写法不太好,extern 就是用来声明的,声明在头文件中,包含了他的地方就可以有这个符号,另有他的定义时就可以访问,如果是只在cpp中定义不加extern那就表示只能在当前文件中使用
max_min_ 2013-07-28
  • 打赏
  • 举报
回复
引用 2 楼 my_live_123 的回复:
right! b在其他文件中使用的时候要用extern声明
++ ++
zjtzlqr 2013-07-28
  • 打赏
  • 举报
回复
其实两者都是静态变量,单片机上电以后都会为他们在ram中分配地址,区别就在于a的链接属性是internal的,而b的链接属性是external的.
水平不流 2013-07-28
  • 打赏
  • 举报
回复
可以啊.extern int b 就可以了. 表示在其他地方定义过.
ccc43542876 2013-07-28
  • 打赏
  • 举报
回复
当一个工程有多个cpp文件时。。static变量是只能在本cpp文件中使用,而全局变量是所有cpp文件都可以使用。。
天台的故事 2013-07-28
  • 打赏
  • 举报
回复
可以这么理解
Mack_liu 2013-07-27
  • 打赏
  • 举报
回复
2楼和4楼正解。。。
dingxd319 2013-07-27
  • 打赏
  • 举报
回复
b其他文件可以访问,但是在其他文件里要定义成extern int b;
酱油小龟 2013-07-27
  • 打赏
  • 举报
回复
可以这么理解
一根烂笔头 2013-07-27
  • 打赏
  • 举报
回复
right! b在其他文件中使用的时候要用extern声明
www_adintr_com 2013-07-27
  • 打赏
  • 举报
回复
可以

70,023

社区成员

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

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