您的位置:首页 > 其它

The size of base data type in Ubuntu-AMD64

2008-04-30 10:30 447 查看
都说64位操作系统中的sizeof(int)应该等于8,即8字节,我特意在我的64位AMD CPU的本本上装了一个64位Ubuntu操作系统,当然不完全是为了测试sizeof(int)。可测试结果让我出乎意料,sizeof(int)=4;sizeof(long)=8;我找了g++编译器的选项,但是没有找到能够将sizeof(int)编译成64位的,-mint64被认作不能识别的命令。虽然-m64可以识别,但我认为编译器已经默认使用了该选项,因为使用与不适用该选项结果都是一样的,至少在程序的输出中都是一样的。

测试代码如下:

#include <iostream>

int main(int argc, char argv[])
{
std::cout<<"sizeof(short) = "<<sizeof(short)<<std::endl;
std::cout<<"sizeof(int) = "<<sizeof(int)<<std::endl;
std::cout<<"sizeof(long) = "<<sizeof(long)<<std::endl;
std::cout<<"sizeof(long long)= "<<sizeof(long long)<<std::endl;
std::cout<<"sizeof(float) = "<<sizeof(float)<<std::endl;
std::cout<<"sizeof(double) = "<<sizeof(double)<<std::endl;
std::cout<<"sizeof(long double)="<<sizeof(long double)<<std::endl;
return 0;
}



查看系统信息如下:
uname -a
Linux fibbery-desktop 2.6.24-16-generic #1 SMP Thu Apr 10 12:47:45 UTC 2008 x86_64 GNU/Linux

运行结果如下:
sizeof(short) = 2
sizeof(int) = 4
sizeof(long) = 8
sizeof(long long)= 8
sizeof(float) = 4
sizeof(double) = 8
sizeof(long double)=16
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐