免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 77h2_eleven
打印 上一主题 下一主题

[函数] 大家在项目代码中会大量使用断言么?  关闭 [复制链接]

论坛徽章:
0
91 [报告]
发表于 2008-07-06 23:50 |只看该作者
原帖由 benjiam 于 2008-7-1 11:24 发表
假设你现在正在面试,主考不紧不慢地给出下一道题目:“请用C语言写一个类似strcpy的函数。
正在装载数据……
要考虑可能发生的异常情况。” 你会怎么做呢?很明显,对方不是在考察你的编程能力,因为复制字符 ...


让我们回到 8楼 的问题上来。

四种不同的字符串拷贝的实现实际上反映了四种不同的函数规范。

函数的主体功能是实现字符串的拷贝。除此之外,如果有一参数为 NULL(即指针不指向字符串),不同的实现意味着各自的规范如下:
1.结果无定义(因为有可能存在使用空指针的现象)
2.空操作(No-Op)
3.返回错误、设置错误号(表明参数错误)
4.抛出异常(表明参数错误)

四种规范中字符串的拷贝行为是一样的,区别在于参数指针不指向字符串(即为空指针)时的处理。其中,3 和 4 实质上是一样的,只不过在错误处理的方式上有差异罢了。

现在的问题就转换为:如果让你来设计或者选择,你觉得对于 strcpy 来说,以上哪种规范更好一些?可从多种角度(如函数的实现、函数的使用、函数的效率等)来重新审视这个问题。

论坛徽章:
0
92 [报告]
发表于 2008-07-07 00:36 |只看该作者

回复 #91 whyglinux 的帖子

还有调用函数相关部分的调试效率(这个贴里对这个角度讨论的比较激烈).

[ 本帖最后由 system888net 于 2008-7-7 01:08 编辑 ]

论坛徽章:
0
93 [报告]
发表于 2008-07-07 14:45 |只看该作者
看不明白啥意思

论坛徽章:
0
94 [报告]
发表于 2008-07-07 15:57 |只看该作者
原帖由 benjiam 于 2008-7-1 11:24 发表
假设你现在正在面试,主考不紧不慢地给出下一道题目:“请用C语言写一个类似strcpy的函数。
正在装载数据……
要考虑可能发生的异常情况。” 你会怎么做呢?很明显,对方不是在考察你的编程能力,因为复制字符 ...



那您老也太极端了点了吧。 编码规范一般都是每个公司都有自己的积累,单纯凭这个就让人家出局,很幼稚,我就不信那个写得出1,2的写不出3,4来!

论坛徽章:
0
95 [报告]
发表于 2008-07-08 16:00 |只看该作者
适当使用.

论坛徽章:
0
96 [报告]
发表于 2008-07-08 19:09 |只看该作者
新手,刚工作,经验不足,呵呵。

论坛徽章:
0
97 [报告]
发表于 2008-07-09 10:48 |只看该作者
不用,出错debug下就是

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
98 [报告]
发表于 2008-07-09 23:37 |只看该作者
我一般用断言表示决不可能发生的事情, 如果发生了, 只能表明是自己代码哪里有错误。 自然用if语句作检查能进行错误处理, 但对于不可能发生的事情用if很容易将程序错误掩盖掉, 而且, if语句怎么着也浪费点cpu

论坛徽章:
0
99 [报告]
发表于 2008-07-10 14:24 |只看该作者
学习了,好文章

论坛徽章:
0
100 [报告]
发表于 2008-07-10 16:16 |只看该作者
没用过在项目里。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP