| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 730 人关注过本帖
标题:良好代码风格(三)---- 易读
取消只看楼主 加入收藏
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
结帖率:94.72%
收藏
已结贴  问题点数:20 回复次数:1 
良好代码风格(三)---- 易读
一:将常用的操作封装成函数


求一个数的绝对值
unsigned int abs(int a)
{
    return a < 0 ? -a : a;
}

判断一个点是否在一矩形里
int isPointInRect(int ax, int ay, int aw, int ah, int bx, int by, int bw, int bh)
{
    int ret = 0;
    if (by + bh < ay || by > ay + ah || bx + bw < ax || bx > ax + aw)
    {
        ret = 0;
    }
    else
    {
        ret = 1;
    }
   
    return ret;
}

可能有人会对此不屑一顾, 这么简单的代码也要写一个函数?
是的,这样写不仅会节省编码量,因为你可能会多次用到这个函数,而且别人看到这个函数名就知道  
if (by + bh < ay || by > ay + ah || bx + bw < ax || bx > ax + aw) 这样的语句是什么意思了。/

这估计也是 STL 出现的缘由。/

二:避免复杂的表达式

int j = i++ + i++;
这样的表达式根本就是错的,都谈不上复杂, 不承认这个事实的在我看来,c语言都没入门。
当一个表达式很长时, 最好用定义一个临时变量 中转下, 这样你更容易知道这个表达式具体的含义。
比如,将一个24位色 转化成 一个16位色
unsigned short color888To565(int color)
{
    unsigned char r, g, b;
    r  = (color >> 16) & 0xFF;
    g = (color >> 8) & 0xFF;
    b = color & 0xFF;
   
    return ( ((r>>3) << 11) + ((g>>2) << 5) + ((b>>3)) );
}

这样 我一看(color >> 16) & 0xFF 就知道 这是一个 颜色分量。

三:适当的运用语言特性
如果你需要用整型的时候就别用 浮点型, 如果你需要一个 unsigned 别用 signed , 如果你不想某个数值被意外改变, 就加个 const 限制。
char 这个关键字,标准是没有 规定其是 signed 还是 unsigned 的, 如果你搞不清, 用unsigned 安全点。

四:代码中不要出现 不明确的数。
尽量用宏定义一个符号常量, 这样,你看到这个常量名就明白这个常量名是代表什么了。
而且,你以后需要改动这个符号常量的时候也会很方便。



[ 本帖最后由 BlueGuy 于 2010-10-31 19:00 编辑 ]
搜索更多相关主题的帖子: 风格 代码 
2010-10-31 17:53
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
回复 8楼 御坂美琴
没用的,你已经伤害到了我,/

我就是真命天子,顺我者生,逆我者死!
2010-10-31 22:09
快速回复:良好代码风格(三)---- 易读
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.084997 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved