C_and_CPP 板


LINE

正在工作,在修前人的 code。 假设现在有 function F 和 function G, function F 内执行的程式码会呼叫 function G 并将某个指标作为参数传入 G 想请问一下高手大大们,空指标的检查一般都在: 1) function F 要传入该指标到 function G 前 2) 收到该指标的 function G 的开头 3) 1、2 两者皆要 的哪个时机检查最好? 又有什麽优缺点? 因为选方案 1 的话,要是某些时候呼叫 G 前忘记检查就会出事,而且程式码满冗赘的; 可是如果用方案 2 的话,在某些情况下, 会呼叫 G 的 function F 可能已经存取过该指标,等於先保证不会为空, 那 2 的作法就等於每次都多一道检查行为。 方案 3 没看过,可能老鸟跟菜鸟没串好 @@? 那有约定成俗的 coding rule 吗? 一般都怎麽写比较好? -- 2007: 用 2G 网路分享有关 3G 电波危害的吓人文章 2010: 用 3G 网路分享有关 4G 电波危害的吓人影片 2018: 用 4G 网路分享有关 5G 电波危害的吓人高画质影片 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.221.50.98 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1568795266.A.377.html
1F:推 johnpage: 2 09/18 16:37
2F:推 boss0405: 2,多检查一下不会怎样 09/18 16:43
3F:→ Lipraxde: 如果不是预期会传 nullptr 的话会用 assert 检查吧 09/18 17:50
4F:→ rodion: 按架构layer区分是否检查null: 检查只需在layer的"介面" 09/18 18:12
5F:推 goliathplus: 一般是2 09/18 19:25
6F:→ loveme00835: 这要看责任的分配, 正常是 3, 不过这要看你的指标是 09/18 21:28
7F:→ loveme00835: 当 in/out param 哪一个, 给 nullptr 算不算例外, 这 09/18 21:28
8F:→ loveme00835: 要先从 API design 开始讲起 09/18 21:28
9F:推 Gway: 惯例是2 确保fun 本身有排错能力是基本 09/18 23:27
10F:推 ando5566: 2 09/18 23:28
11F:→ kevin14144: 需看情况。 就程式稳定度考量。选2 :当G方法覆用时, 09/19 00:13
12F:→ kevin14144: 能够保证不产生例外。 效能上:若F方法多次呼叫G方法 09/19 00:13
13F:→ kevin14144: 这种情况 就可能需要考虑移除G方法内的判断。 另外 09/19 00:14
14F:→ kevin14144: 还有一种做法:就是保证不产生nullptr. ~ 09/19 00:14
15F:推 CodingMan: 2 G G 可能不是只有这里会被呼叫 09/19 06:37
谢谢大家,我会朝 2 的方向跟大家讨论。 我的 function G 是不同地方都会 call 到的。 ※ 编辑: henry8168 (60.250.185.98 台湾), 09/19/2019 16:31:32
16F:推 jass970991: 2, 但是如果你设计的function会传null出来,你应该 09/19 20:30
17F:→ jass970991: 检讨不是设计错误 09/19 20:30
18F:→ ketrobo: 我选择caller检查优先,在遇到检查nullptr这样的抉择之前 09/20 01:35
19F:→ ketrobo: ,我会更优先检查使用指标的必要性,如果能以reference解 09/20 01:35
20F:→ ketrobo: 决,或是null object pattern替代,则不使用pointer… 09/20 01:35







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灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP