您的位置:首页 > 编程语言 > C语言/C++

小细节:关于C++各种变量的size问题。

2014-06-05 20:50 441 查看
C++中整形数据类型的范围都定义在了limits.h中,具体场景中可以从这个文件获取编译器具体实现方式。

ISO并没有规定大部分数据类型的长度,仅仅规定了sizeof(char)=1,但位长却是CHAR_BIT定义的。

32位机器中,int,long,指针都是32-bit。

在Unix 64位机器中,int是32位,但long和指针是64位。

在Windows 64位机器中,long
long和指针是64位,但long和int是32位。

另外,int也不一定偏是4个字节的,在SPARC64中,int是8个字节。

再说double和float,虽然ISO文档里没规定,但是又另外一个IEEE754文档做了规定,规定float是32位而double是64位,当然,你可以不遵循这个文档,但实际应用中,还没有操作系统架构不遵循这个文档。所以,你可以把float和double的长度看成是和平台无关的。

所以,以后也注意点,别一提到long就马上觉得是32位的,这要视平台而定,ISO文档里没有规定。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: