规范化的C++编程方法备忘录 整数分类的细则

分类的选取

    选取的原则是 目的取值范围,另外对于多选的,还要考虑传值的方便和尽量提高处理器性能。

例1:声明一个变量n,用于存储两个任意指针间的差值:

  要达到任意指针间的差值都能被恰当的存储,可知只有指针型整数能满足要求。写成

    size_t n;

例2:一个通用的内存分配函数被声明为void * Alloc(cEle); 给出并添加最适合cEle的类型以完成该函数的声明:

  我们选用指针型整数。函数声明写成void * Alloc(size_t cEle);

例3:一个内存分配函数为void * AllocDW(DWORD cb); 完成它的实现:

例4:要存储最多4000组数据到内存中,声明一个整数来表示该大小。

 内存中数据块的大小通常用指针型整数来表示。该整数的类型为size_t。

 因为sizeof(size_t)>=sizeof(int)>sizeof(char),得到sizeof(size_t)>=2。而4000<65535,所以该整数的类型如果为WORD也是可以的。

例5:要存储最多2M组数据到内存中,声明一个整数来表示该大小。

  一般内存中数据块的大小用指针型整数来表示。但是该例中数据多达2M。而从sizeof(size_t)>=sizeof(int)>sizeof(char)得到sizeof(size_t)>=2,显然这个明确的2M超过了65535。至少应该用固定位宽型的DWORD类型来声明。但是考虑到DWORD和size_t的位宽没有固定的大小关系,因此代码还需要用类似例3的方法处理。

 

[草稿阶段]

 

整形提升规则在整数分类中的实现机制

[草稿阶段]

不同分类的整数间做比较的方法

[草稿阶段]

 

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值