Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4042474
  • 博文数量: 536
  • 博客积分: 10470
  • 博客等级: 上将
  • 技术积分: 4825
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-26 14:08
文章分类

全部博文(536)

文章存档

2024年(3)

2021年(1)

2019年(1)

2017年(1)

2016年(2)

2013年(2)

2012年(10)

2011年(43)

2010年(10)

2009年(17)

2008年(121)

2007年(252)

2006年(73)

分类: C/C++

2006-10-25 14:34:20

体会[2006-10-25]:
    1>. 在写程序时注意"无符号类型"的使用, 各种类型边界值的情况.
    如:
    a.> 当某个数据不可能为负数时我们一定要考虑用以下类型:
        unsigned char, unsigned int, uint32_t, size_t, uint64_t, unsigned long int,  
    b.> 当有些数据你不知道是正负时一定不要用"a.>"中的类型, 不然他永远也不可能为负.
        
    c.> 数据的边界值要多注意, 如:
        uint32_t    a, b, c;
        uint64_t    m;
       
        m = a*b + c;
        在该运算中可能出现错误, "a*b"的类型可能超过uint32_t的最大值,这时一定不要忘了类型转换.
        m = ((uint64_t)a) * b + c;

    2>. 在适当的时候要会自我定义数据类型.
    我们都知道linux C开发中的常见扩展数据类型的定义有:uint8_t, uint16_t, uint32_t, uint64_t, size_t, ssize_t, off_t .... 他之所以要自己定义出数据类型是有道理的, 如: typdef unsigned int uint32_t; 表示uint32_t为32位无符号类型数据, 其实size_t也是32位无符号数据类型, 为什么不直接写"unsigned int"呢?
    为了程序的可扩展性, 假如将来我们需要的数据大小变成了64bit时,我们只需要将typedef long int size_t就可以了, 不然我们可要修改好多好多的地方了. 这种设计我们同样可以应用到自己的开发中来,当自己设计一个int类型保存某种数据时,但你又没把握将来是不是要用long int时你可以引用一个自己定义的数据类型的啊!
阅读(3190) | 评论(0) | 转发(1) |
0

上一篇:我要做到的

下一篇:汉芯一至五号全造假

给主人留下些什么吧!~~