免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
11 [报告]
发表于 2004-07-21 19:01 |只看该作者

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

to flw:
你的那个方法在调试时候注释大量的代码不好,还是 #if 0 的好。
理由是:你的大量代码里面可能会有别的 /**/ 注释,这个时候,你在外面用那种注释会出错的。
其实我觉得平时写程序就应该尽量用单行注释。

论坛徽章:
0
12 [报告]
发表于 2004-07-21 22:12 |只看该作者

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

我倒是觉得flw的那个不错。只要一撇就可以togger一大段代码。

MFC 同样在c++还没有exception之前,也采用了宏来模拟。摘录一点:
#define TRY \
        { AFX_EXCEPTION_LINK _afxExceptionLink; \
        if (::setjmp(_afxExceptionLink.m_jumpBuf) == 0)

不过我估计在栈中的C++的对象是无法unwind的。

我再加一点:由于C++的class无法像java一样可以有一个static main函数,有时候只想运行一些简单的测试语句用于调试。可以利用C++的全局对象构造的功能,随便定义定义一个class,在构造函数中运行一些测试代码,例如:

  1. struct testonly
  2. {
  3.   testonly()
  4. {
  5.       .....your test code here...
  6. }
  7. }

  8. testonly xxx_testonly;
复制代码


然后就可以即地调试,也不用去main函数中修改了。
不过这个只有c++才有,c就不行了。

论坛徽章:
0
13 [报告]
发表于 2004-07-22 10:34 |只看该作者

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

关于通常的注释,windflowers1976老大提到的那几个应该是比较标准的做法;其中文件注释的方法是比较正规的,采用的是java头文件的注释方式,可以方便的自动导成相关文档,大型项目比较适用,推荐。(我碰巧参加过一个hp监理的项目,所以知道一点,凑巧。)
而对于调试的注释,我则认为用if选项比较好;我比较认同“我不懂C++ ”的观点,因为c++好像推荐单行注释(ue中提供的添加注释就是在每行之前加//);
对于宏的设计,好像并不提倡用(不知道这个观点对否);至于用法,从linux源代码里可以看到很多比较好的示例;而MFC中的宏则更加经典,可以从中学习。(对这些老头子佩服的五体投地啊,^_^)。

ps:个人观点,仅供参考,欢迎拍砖(目前实在无聊,^_^)。

论坛徽章:
0
14 [报告]
发表于 2004-07-22 11:07 |只看该作者

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

在调试或者测试程序的时候,如果不是普通的注释,而是注释掉代码,我同意 我不懂C++  的观点。由于/**/注释有很大的局限性,即不能嵌套/**/,基本上我不会用它,只用 // 和 #if。

如果是一般性的注释,用 /**/ 或者 //,不宜使用 #if。

论坛徽章:
0
15 [报告]
发表于 2004-07-22 16:56 |只看该作者

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

引用ftw的原话:
#你没明白我们在说什么。
#我们说的不是普通的注释,而是注释掉代码。
#就是说,在开发或者调试的过程当中,有一段代码需要频繁地屏蔽掉、又打开、又#屏蔽掉,所以呢,当然是要编辑起来省事才好。

和和,其实大家都明白的,一看你就是没做过什么大项目的人,身为斑竹,水平不需要多高,但请谦虚些。

论坛徽章:
0
16 [报告]
发表于 2004-07-22 18:21 |只看该作者

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

我们这采用的是预处理


  1. # define _DEBUG

  2. ......


  3. # ifdef _DEBUG
  4.         调试代码       
  5. # else
  6.        调试代码
  7. # endif
复制代码

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
17 [报告]
发表于 2004-07-25 10:01 |只看该作者

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

我个人最喜欢这种用法

#define DEBUG_CODE 0
....
#if DEBUG_CODE
...
#else
...
#endif

论坛徽章:
0
18 [报告]
发表于 2004-07-26 00:56 |只看该作者

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

好贴,以前我一般是用vim的键盘映射,也挺方便的。

论坛徽章:
0
19 [报告]
发表于 2004-07-26 17:50 |只看该作者

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

[quote]原帖由 "ucdriver"]好贴,以前我一般是用vim的键盘映射,也挺方便的。[/quote 发表:

不懂,帮介绍介绍

论坛徽章:
0
20 [报告]
发表于 2004-08-01 20:48 |只看该作者

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

不知大家是否写过这样的代码,我是犯过这样的错误的
if( a=5) ......   ,其实我们是想写 if( a ==5).....

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

现在很多人把if语句都这么写,同样是上面的语句,
if( 5 == a) ...
这样即便是写成if( 5 =a) 编译器也一样会报错,这种比较不显著的但是容易疏忽的错误就避免了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP