免费注册 查看新帖 |

Chinaunix

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

[函数] 请大家看看这个函数究竟能找出几个错误 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2006-06-15 23:14 |显示全部楼层
原帖由 converse 于 2006-6-15 22:41 发表


我一般用一个宏来释放内存,

[code]#define DELETE_PTR(p) \
              do{                  \
                       if (NULL != ptr)\
                       {                     \
     ...


用p而不用(p),写宏的一大禁忌!

论坛徽章:
0
12 [报告]
发表于 2006-06-16 09:22 |显示全部楼层
原帖由 flw 于 2006-6-16 08:53 发表

你刚才列的这三条,
除了第 3 条之外,前两条都是扯淡。
不仅不是好习惯,而且还是坏习惯,
比那个把常量写左边的习惯还要坏---把常量写左边只是可读性差了一点,倒还不至于误导人。


发兄,第三条也是扯谈:
多加一个{}, 无非是怕if后面跟的是宏定义,宏定义展开后出问题。
那不是if的错,是宏定义没写好。

论坛徽章:
0
13 [报告]
发表于 2006-06-16 09:24 |显示全部楼层
原帖由 flw 于 2006-6-16 09:21 发表

不必难过,正常人都这样,
只有那些读过博士的比如林锐之流,脑袋才会变成这样,
一班人看了 NULL == fp 没有不头晕的。


林锐的有些提法还是很中肯的,
就是有点矫枉过正的说。

论坛徽章:
0
14 [报告]
发表于 2006-06-16 09:30 |显示全部楼层
原帖由 hellioncu 于 2006-6-16 08:38 发表
人家只是说做过,具体水平怎样也不一定呀。
我面试过的比这差的有很多,语法错误都一大堆。
很多人都不知道memcpy和memmove的差别。


不明白不要紧,关键几乎没有人审题。
我把man memmove的结果打出来给他们,
几乎没有人注意到红色的部分。

       void *memmove(void *dest, const void *src, size_t n);

DESCRIPTION
       The  memmove()  function  copies n bytes from memory area src to memory
       area dest.  The memory areas may overlap.

论坛徽章:
0
15 [报告]
发表于 2006-06-16 09:32 |显示全部楼层
原帖由 tan1 于 2006-6-16 09:28 发表



memcpy和我写的应该有区别吧,memmove和memcpy相比 除了可以拷贝重复地址还有什么区别呢?


呵呵,差别就是memcpy比你写的那个效率高

论坛徽章:
0
16 [报告]
发表于 2006-06-16 09:38 |显示全部楼层
原帖由 njmpop 于 2006-6-16 09:36 发表



这样的,上来就用i--感觉不爽,为什么不i=0;i<len;i++呢?
没见有啥不一样的。多直观。


经验表明:
比较i < len的效率,
比 i > 0 要差。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP