32位 64位
char 1 1
int 4 大多数4,少数8
long 4 8
float 4 4
double 8 8
指针 4 8
以上是一般情况,基本够用,主要是接触平台少,搜罗了一些网上的讨论,放在下面:
===============================
编译器一般会做这些设定:
char占一个机器字节byte,一般是8位,但也出现过6位,7位,9位,12位和16位。
int占一个机器字word,一般是32位。但也出现过8, 9, 12, 18, 24, 36, 39, 40, 48和60位。
long占一个通用寄存器,所以32位机上是32位,64位机上是64位。
指针和long一样大。
float如果是按照IEEE的标准是32位。
double如果是按照IEEE的标准是64位。
===============================
CPU、OS、Compiler综合决定。
比如32位下Windows,Tubor C,int是16位,VC,int是32位(这是Compiler决定的例子);
又入Java,int哪里都是32位(举Java的例子是想说,即使是16位的平台,也可以强制实现的时候int是32位的);
⋯⋯
这样的组合还很多,我们用过的比我们没有用过的平台要少很多,所以对于这种问题,我更倾向说是平台依赖的(环境依赖的),什么是平台,CPU,OS加Compiler。
===============================