aero's home

Welcome to aero's home. Here, impossible is nothing!
    <<  8月24日 | 首 页 | 8月26日  >>
  • 一种好的宏定义习惯

    Tag:技术学习

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://aero.blogbus.com/logs/351028.html

    今天,和一位网友Oasis谈了一些关于宏定义的一些问题,颇有所得。特录于此。起因是他看到open sourc中经常有这样的源码,感觉无法理解:#define swap(a,b) do {int tmp;tmp = (a);(a) = (b);(b) = tmp;}while(0)。总感觉这样的定义中的do-while有点蛇足的味道,感觉真的是没有什么必要。开始我也是这样觉得的,因为是while(0)嘛,总感觉不用do-while,只用{}也是可以解决问题的。后来我们经过测试得出这样的结论:用这个语句,完全是程序员追求严谨的性格决定的风格。因为如果这样定义宏,那么如上面的swap宏,就只能像函数一样使用,这样在句子后面跟上分号:swap(a,b);。而如果只用{}来定义的话,那么使用中加不加分号就都可以了,就会比较混乱而且不严谨。

    如果使用{}的话,会在if else语句中加分号不好用。而且,强制加分号,表明了这个宏不可以当作操作数来使用。【添加于9月24日】


    历史上的今天:

    8月26日 2004-08-26

    随机文章:

    关于液体突沸的解释 2005-10-13
    windows xp下面的语言栏消失的问题 2005-02-28
    柯达LS633自动数码相机使用心得 2005-01-20
    3天的摄影感悟 2005-01-18
    揭开保护模式的神迷面纱 2004-12-16

    收藏到:Del.icio.us




    引用地址:
    aero 发表于14:48 2004-08-26 | 编辑 | 继续话题 | 转发 | 分享 0

个人资料

aero

aero

日历

搜索

管理

  • 进入后台 写新日志
  • 文章管理 评论管理
  • 更换模板 访问统计

文章分类

    Tag

    • 流水帐[61]
    • 感性人生[25]
    • 技术学习[19]
    • 外面的石头[9]
    More..

    最新文章

    • 昨天晚上梦到杀人了
    • 不会沟通了
    • 今天做了件好事
    • 小小回音壁
    • 王者归来
    • 暂时封存
    • 好诗两首
    • 关于液体突沸的解释
    • 黑白琴键
    • 一次奢侈的对话
    全部日志>>

    最新评论

    • kuaile556:博主的游记 写的不错 同程旅游网正在举办的南戴河旅游网...
    • 道哥:不错,这样的问题也被解释清楚了,不过还想补充一点: &...
    • ljx:我这边有几个 .vi 的文件 不知道怎么样 去阅读 ...
    • stranger:新颖
    • 东:我们这个社会太需要平等和尊重了....
    • :Ҳε ...
    • 懿:一直链接你MSN的SPACE来着 发现了这个好像更新的...
    • 芳儿:上大学的时候寝室楼下就有呢:)...
    • 难得糊涂:如果有人和我有同样的爱好,就发邮件吧 ...
    • 难得糊涂:我一直以为镜子成像是人左右对称造成的,只到今天我才算想多...

    链接

    • 二哥的blog
    • 梦想风暴
    • badcoffee的生活空间
    • 無 有 居

    存档

    • 2006 [6]
    • 2005 [37]
    • 2004 [69]
    • RSS 什么是RSS?
      用IM提醒我内容更新
      订阅到QQ邮箱
      订阅到鲜果阅读器
      订阅到Google阅读器
      订阅到抓虾阅读器
    • 《城客》第四期:创意之城
      博客大巴
      博客大巴使用指南
      博客大巴模板中心
      免费注册博客大巴
      一键博客搬家工具
      中文互动杂志城客
    Copyright © 2002-2010 BlogBus.com, All Rights Reserved. 博客大巴 版权所有
    博客大巴模板设计:红粉笔计划2 | 作者:Magic