long double类型的长度问题
我在VC6.0下用sizeof(long double)的出来的结果是8,同double的一样;
但是在linux下有G++和VI 得到的sizeof(long double)=12;double=8;
不知道这是为什么?
他们的表示不一样吗?
(都是32位机器)
问题点数:5、回复次数:4Top
1 楼steedhorse(晨星)回复于 2006-12-01 08:52:25 得分 0
类型的长度不仅跟处理器有关,当然也跟编译器有关。
比如,你用TC20打印sizeof(int),输出会是2,而VC会输出4。Top
2 楼taodm((不能收CSDN社区短信息,请莫浪费精力))回复于 2006-12-01 08:56:49 得分 0
C、C++都没有规定说long double必须多大。
你本来就不该倚赖这一点。Top
3 楼xulecn(流氓兔)回复于 2006-12-01 10:31:57 得分 0
这些不确定分配对程序设计没有影响么?尤其在使用指针的时?Top
4 楼A_snail(蜗)(牛)VS.(钉)(子)回复于 2006-12-01 10:56:02 得分 0
这些不确定分配对程序设计没有影响么?尤其在使用指针的时?
=======================================
系统已知的类型在分配上是没多少影响的,这个在编译过程中就会合适的转换,使用指针也同样;一般在分配空间时很少人为指定size的大小,而是通过sizeof()来取的,所以没什么影响;
但如果是自定义的class,应该有所考虑,特别是对带变量对齐的类,更是要小心用,也就是不要去自己去口算那个空间。Top





