C_and_CPP 板


LINE

不知道为什麽我C++的老师规定 我们写程式不能用全域变数 难道用全域变数比较差吗? 麻烦各位版友回答一下吧 感谢! --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.136.175.106
1F:→ adrianshum:全域变数有它合用的地方, 但初学者肯定会误用. 你就当 05/26 17:57
2F:→ adrianshum: global var is evil 吧, 对初学者而言比较好 05/26 17:57
3F:推 zlw:存活时间太久,记忆体空间跟变数名称都一直占着 05/26 18:26
4F:→ james732:我觉得它跟goto是同等级的利器 XDDD 05/26 18:50
5F:→ james732:Linux kernel 里有很多全域变数 也有很多 goto XD 05/26 18:54
6F:→ VictorTom:写code不是玩机战啊~~地图兵器不要乱放....XD 05/26 18:54
7F:推 chchwy:滥用全域变数会让程式快速接近崩溃边缘....... 05/26 19:24
8F:推 Ebergies:还好吧, 蛮好用的啊 05/26 19:38
9F:推 ianfang:debug不易 很容易不知道是谁改了他 因为随便就能改 05/26 19:42
10F:→ OgamiIchiro:大型程式用太多global variable可能会造成memory不足 05/26 19:46
11F:→ OgamiIchiro:而且练习memory的控管很重要 05/26 19:47
12F:推 stonehomelaa:会让function之间相依性太高 如果要修改 会改到死 05/26 19:49
13F:推 varg:怕手残改到而已 小程式当然无所谓 05/26 19:50
14F:推 QQ29:可以请大家举例说什麽情况 就不该使用global吗? 05/26 20:11
15F:→ QQ29:像有些就觉得不写成global好像就不会写了..... 05/26 20:11
16F:推 stonehomelaa:楼上说说看非用global variable的情况吧 05/26 20:18
17F:推 legnaleurc:signal handler 的 flag 05/26 22:03
18F:→ softwind:跨档案的变数 global吧 cin/cout... 物件算吗? 05/26 22:29
19F:→ softwind:全域变数和goto 都很好用! 05/26 22:30
20F:→ tinlans:global var 最大的危险就是会存取到上一次迭代留下的遗迹 05/26 23:31
21F:→ tinlans:,所以必须要特别花时间留意适时的 reset 它们的值。 05/26 23:32
22F:→ tinlans:另外它可能会引发效能问题,某些平台全域变数存取很慢。 05/26 23:34
23F:推 softwind:global var 的最大危险 是我觉得不得不的解法 05/27 00:15
24F:推 legnaleurc:scope 太大 ... 难 debug 05/27 01:14
25F:推 wowtiger:global 最容易知道被谁改吧 ... 05/27 01:27
26F:→ wowtiger:而且 global 又不一定不好 只要知道 4k memory block 05/27 01:28
27F:→ wowtiger:反而可以有效节省空间 05/27 01:28
28F:推 TroyLee:"global 最容易知道被谁改吧" 除非整个程式码你都看的到 05/27 02:51
29F:→ OgamiIchiro:local variable如果运算错误 可以很明显知道是该 05/27 02:57
30F:→ OgamiIchiro:function内部的问题 但如果是global variable 05/27 02:57
31F:→ OgamiIchiro:尤其是那种非常多function都会去access的 05/27 02:58
32F:→ OgamiIchiro:当你一个program花1s run完 可能就被改了数百次以上 05/27 02:59
33F:→ OgamiIchiro:遇到这种情形就很难找出到底从哪里开始错的 05/27 02:59
34F:→ OgamiIchiro:如果是遇到更棘手的情形: 该variable中间有几次的 05/27 03:01
35F:→ OgamiIchiro:算出错 但是後来又因为一些特例变成对的 05/27 03:01
36F:→ OgamiIchiro:结果造成debug 没de出来 很可能会在demo的时候就 05/27 03:02
37F:→ OgamiIchiro:出纰漏 05/27 03:02
38F:推 Ebergies:global 最不容易知道是谁改 xD 05/27 09:55
39F:推 gozha:为了效能勉强可接受..但是养成习惯就惨了 05/27 10:11
40F:→ tinlans:global variable 的存取效能在某些平台上很差喔。 05/27 11:27
41F:→ tinlans:load/store 架构,有 GOT 的通常会有两次 memory access。 05/27 11:29
42F:推 wowtiger:恩... 有玩过可以下 memory breakpoints 应该知道吧 05/27 23:22
43F:→ meltice:struct的member被其他pointer指来指去 05/28 09:51
44F:→ meltice:这样会比global更清楚被谁改的麽? 05/28 09:52
45F:→ meltice:乾脆不要用pointer好了 pointer是很危险的东西 05/28 09:52







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP