免费注册 查看新帖 |

Chinaunix

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

【八仙过海,各显神通】大家把平时编程时用的技巧,都贴上来吧! [复制链接]

论坛徽章:
0
41 [报告]
发表于 2004-09-14 14:19 |只看该作者

【八仙过海,各显神通】大家把平时编程时用的技巧,都贴上来吧!

>;>; 其实 flw 和 loef 说的是不正确的。
呵呵,这个不是flw的错,是我从《c语言参考手册》上看到的,在p33,这个技巧在《c语言接口与实现》中实现类似于c++中的try宏中也有,可以看这个贴前面的留言。

其实这个技巧就是要把swap宏当作函数来看待,后面的;并不是在所有的情况下都不会出错的,还是《c语言参考手册》,讲到这个技巧的时候就指出了一个问题,如果还是像第一个那样做的话,那么:

  1. if (x >; y)
  2.     swap(x, y);
  3. else
  4.     .....
复制代码

展开以后多了一个;号就会出错的。

论坛徽章:
0
42 [报告]
发表于 2004-09-14 14:40 |只看该作者

【八仙过海,各显神通】大家把平时编程时用的技巧,都贴上来吧!

我没考虑到 converse 说的这种情况。从这个意义上讲,flw 和 loef 是正确的。

这也可以看做是 converse 以前贴的一个帖子“MISRA--作为工业标准的C编程规范 ”:http://bbs.chinaunix.net/forum/viewtopic.php?t=399292中“Rule 59. if, else if, else, while, do..while, for语句块必须使用{}括起。”的一个注脚吧。

论坛徽章:
0
43 [报告]
发表于 2004-09-14 15:13 |只看该作者

【八仙过海,各显神通】大家把平时编程时用的技巧,都贴上来吧!

呵呵,这个不是flw的错,是我从《c语言参考手册》上看到的,在p33,这个技巧在《c语言接口与实现》中实现类似于c++中的try宏中也有,可以看这个贴前面的留言。


唉,好像说不清了,我上面这句话的意思是flw是把我在另一个帖子的留言给贴上来的,这个留言是看到《c语言参考手册》的那个方法所以写上去的,所以要是错的话也是我的错,flw只是好心把我在另一个帖子上关于宏技巧的留言放在这里而已,顺便说说这个帖子的发表人也不是我,而是flw........具体见第一页呵呵

论坛徽章:
0
44 [报告]
发表于 2004-09-18 11:57 |只看该作者

【八仙过海,各显神通】大家把平时编程时用的技巧,都贴上来吧!

向各位高手学习

论坛徽章:
0
45 [报告]
发表于 2004-09-24 00:44 |只看该作者

【八仙过海,各显神通】大家把平时编程时用的技巧,都贴上来吧!

原帖由 "yunfan" 发表:
不知大家是否写过这样的代码,我是犯过这样的错误的
if( a=5) ...... ,其实我们是想写 if( a ==5).....

这样的问题还不容易看出来, 当然如果你从没有出过这种错误,就当我白说了

现在很多人把if语句都这么写,同样是上面的语句,
if( 5 == a) ...
这样即便是写成if( 5 =a) 编译器也一样会报错,这种比较不显著的但是容易疏忽的错误就避免了


不知道yunfan有没有统计过在程序中有多少是用变量和常量做比较的、又有多少是用变量和变量作比较的?
我想 if( a==b )的情况肯定要比判断 if( a==5 ) 的要多吧?!那 if( a==b )和if( b==a )有什么区别吗?
用一种怪异、不符合正常思路的方式来避免错误,这绝对是个馊主意!

论坛徽章:
0
46 [报告]
发表于 2004-09-24 12:17 |只看该作者

【八仙过海,各显神通】大家把平时编程时用的技巧,都贴上来吧!

写成 if(5==a) 好像是微软推荐的做法

论坛徽章:
0
47 [报告]
发表于 2004-09-24 12:23 |只看该作者

【八仙过海,各显神通】大家把平时编程时用的技巧,都贴上来吧!

呵呵,那写成 if (a == 5) 必定是 AT&T Bell 实验室的推荐了。

论坛徽章:
0
48 [报告]
发表于 2008-07-25 11:37 |只看该作者
这种好贴子要继续啊:大家继续发技巧~
我暂时没想出来,想到后补上。

论坛徽章:
0
49 [报告]
发表于 2008-07-25 12:05 |只看该作者
原帖由 flw 于 2004-7-21 15:36 发表
说到注释代码,
我有一个方法:

/*
......
//*/

只要把开始的
/* 前面加一个字符 /,就可以去掉注释,
否则就是注释了。

这个办法比用宏好, 编辑器还会语法高亮

论坛徽章:
0
50 [报告]
发表于 2008-07-25 12:18 |只看该作者
要用好没有技巧的技巧.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP