很多人对c/c++中的整型不太了解,导致代码移植的时候出现问题,本人在此总结一下:
b. c/c++中整型包括:int, char 与 enum, c++中还包含bool类型,c99中bool是一个宏,实际为_bool; 【程序编程相关:MBGA】a. c/c++对整型长度的规定是为了执行效率,将int定义为机器字长可以取得最大的执行速度; 【推荐阅读:.NET Remoting编程简介】d. 修饰整型正负的有 signed 与 unsigned,对于 int 默认为 signed; 【扩展信息:TSOPII】c. c 与 c++ 对 enum 的规定有所不同,这里不描述;e. 修饰 int 大小的有 short 与 long, 部分编译器还扩展了一些更长的整型,比如 long long 与 __int64, c99中增加了long long与unsigned long long;f. int 的长度 与 机器字长相同, 16位的编译器上int长16位,32位的编译器上int长32位;g. short int 的长度 小于等于 int 的长度,注意她们可能长度相等,这取决于编译器;h. long int 的长度 大于等于 int 的长度,注意她们可能长度相等,这取决于编译器;i. char 的长度应当可以包容得下一个字符,大部分系统中就是一个字节,而有的系统中可能是4个字节,因为这些系统中一个字符需要四个字节来描述;j. char 的正负取决于编译器,而编译器的决定取决于操作系统,在不同的编译器中char可能等同于signed char,也可能等同于unsigned char;总结:... 下一页