【数据类型】基本数据类型

F  16进制数,一个16进制数只能表示 0~F

FF  一个字节,两个就可以表示0~255或-127~126了

    char 具体是表示0~255还是-127~126,在不同平台解释不同,所以最好显式使用 signed   char 

  

微软平台下,short占16位,int和long占32位,64位整形在VC6里是__int64;VS里提供了typedef  __int64   LONGLONG   

  ——C标准类型,没有规定数位,随着机器的发展可能会改变。

  

轻易不要使用unsigned  int 类型做函数参数,调用者未注意传入负数会自动转为大整数,不易察觉

  fun(int i) { if(0<i<20) throw new exception; }      fun(unsigned int i) { if(0<i<20) throw new exception; }

 

C++对象的大小,使用char的大小的整数倍来表示的。不同平台对此不要做过多假设STL提供了专门研究类型大小、边界的库。
 

   

WORD,来自微软windef.h,宏 typedef   unsigned short   WORD; 微软保证位数不随机器改变,到时改变宏好思路)。

DWORD,同上,保证位数 typedef   unsigned long     DWORD;

BYTE,    同上,保证位数  typedef   unsigned char    BYTE;

保证位数的无符号整数,用来进行位操作,以及作为固定位参数MAKEWORD(1,2)


bool

布尔值,true, false,不要用0, 1,占一个字节。

在VC4时,bool被 typedef成了int,一个只有两种状态的类型居然占了32位内存。在VC5.0后,bool被定义成了一个字节即8位,为了字节对齐数个bool对象列在一起,还可能会各占一个bit,这取决于编译器的优化。

BOOL

微软宏  typedef int   BOOL,为了兼容VC4的bool而诞生了32位的BOOL。

0, 非0,只用FALSE和TRUE,尽量不要FALSE==BOOL,而用FALSE!=BOOL或TRUE==BOOL

 

 

总结,F   FF(255)   00 00 00 AF(int)

        signed char

    位操作需要固定位用WORD

    不需要固定位用bool,占位少

posted on 2011-03-29 09:24  cvbnm  阅读(353)  评论(0)    收藏  举报

导航