2008年11月27日

struct对象在内存中所占的空间大小(内存对齐)

摘要: 对于一个struct对象,其在内存中所占空间的大小往往不是所有成员的字节大小相加之和。运行下面代码看一下:#include<iostream> usingnamespacestd;//union structdemo{charc;shorts;inti;longl;floatf;doubled;longdoublelb;};intmain(){cout<<sizeof(demo)<<endl;return0;} 我在WindowsXp,vs2008下输出为32,为什么不是1+2+4+4+4+8+8呢?因为struct对象在存储时采用对齐原则,Windows默 阅读全文

posted @ 2008-11-27 22:11 NULL00 阅读(1141) 评论(0) 推荐(0) 编辑

以二进制方式输出数字在内存中的存储形式

摘要: 对于二进制表示的float类型的2.5,其在内存中的表示为01000000 00100000 00000000 00000000,如果我们想打印出它在内存中是如何表示的,那么我们可以用1进行移位,与每个比特进行与运算,还是看看代码吧: 对于输入参数,在visual studio下可以点击项目->属性->配置属性->调试->命令参数进行输入,在visual c++6.0可以点击工程->设置->调试->程序变量里输入。输入2.5打印看看,其结果与我们预期相同。#include <cstdlib> #include <iostream> 阅读全文

posted @ 2008-11-27 21:30 NULL00 阅读(1189) 评论(0) 推荐(0) 编辑

导航