关于C++的基本数据类型长度,看得最多的话就是“依赖于机器和编译器”。C++ Primer中有个表,列出了C++标准中规定的基本数据类型的最小长度,其中short 16位,int 16位,long 32位, long long 64位。但是这个表下面又有一句话说到“C++语言规定一个int至少和一个short一样大,一个long至少和一个int一样大,一个long long至少和一个long一样大”,那照这样说,岂不是大家的最小长度都为16位,这话不是跟表中的数据矛盾吗??另外,我就纳闷,为什么不明文规定确切的长度?这样大家编程也有个规范。像Java所有的类型都有个很明确的长度,不会变。我知道可以用sizeof来兼容,但还是会有些不方便。难道我定义一个int型变量,它的值是65536,我都要先sizeof(int),然后判断一下int是16位还是32位,如果是16位,因为long大多跟int一样长,那我就要用long long(这里说不定还是sizeof一下),如果是32位就用int????