关于全局变量和结构体变量

ouen333 2011-09-02 11:29:57
如果在一个程序中,我定义了一个很大的结构体,现在我要定义一个变量,这个变量可以放在结构体中,也可以将他定义为全局变量,那么这样2者有区别么?该全局变量和结构体都在任何函数之外。
我觉得2者都是在程序开始时产生,在结束时消亡。应该一样吧?
...全文
1753 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ouen333 2011-09-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 leaveye 的回复:]
对于人类:

放在结构里时,隐含一种概念——该变量仅在使用该结构的模块/函数中使用。
放在全局则没有这种概念,任何模块都可能使用它。


对于计算机:

放在结构里时,看使用处:
如果是 全局结构变量.成员 方式,编译器累一点,CPU(运行时)轻松点;
如果是 结构指针->成员 方式,编译器轻松点,CPU 累一点。
放在全局则编译器和 CPU 轻松点。
[/Quote]
恩,谢谢,补充了一些知识.
ouen333 2011-09-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 a648425167 的回复:]
定义在结构体里面,没有全局的结构体变量怎么访问这个全局变量?
[/Quote]
恩,当然是要定义一个变量才能访问结构体的,我问的不是这个...
ouen333 2011-09-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 king_ss_ 的回复:]
定义结构体的全局变量,定义一个变量,这个变量可以放在结构体中,与将他定义为全局变量,生存周期是一样的。都是在程序开始时产生,在结束时消亡。
[/Quote]
我也是这么想的,就是不知道有没有区别.
Leaveye 2011-09-02
  • 打赏
  • 举报
回复
至于生命期,

全局的结构变量和全局变量的生命期是一样的。所以该成员的生命期也与全局变量一样。
Leaveye 2011-09-02
  • 打赏
  • 举报
回复
对于人类:

放在结构里时,隐含一种概念——该变量仅在使用该结构的模块/函数中使用。
放在全局则没有这种概念,任何模块都可能使用它。


对于计算机:

放在结构里时,看使用处:
如果是 全局结构变量.成员 方式,编译器累一点,CPU(运行时)轻松点;
如果是 结构指针->成员 方式,编译器轻松点,CPU 累一点。
放在全局则编译器和 CPU 轻松点。
xxxxllll 2011-09-02
  • 打赏
  • 举报
回复
定义在结构体里面,没有全局的结构体变量怎么访问这个全局变量?
ouyh12345 2011-09-02
  • 打赏
  • 举报
回复
在结构里,只是声明了一个变量吧
king_ss_ 2011-09-02
  • 打赏
  • 举报
回复
定义结构体的全局变量,定义一个变量,这个变量可以放在结构体中,与将他定义为全局变量,生存周期是一样的。都是在程序开始时产生,在结束时消亡。
EmbeddedLong 2011-09-02
  • 打赏
  • 举报
回复
不清楚 帮 顶

70,037

社区成员

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

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