请问各位,我有这样一个CLASS
CLASS A
{bool a;
bool b;
bool c;
int d;}
写入文件后发现数据部分占了8个字节,第3个bool后自动填充了一个字节,当我Read的时候,编译器也跳过了那个填充的字节,我想问有办法不条过那个字节吗?
内存里大概是这样的,
01 01 01 00 00 00 00 60
bool bool bool 填充 int
CLASS A
{bool a;
bool b;
bool c;
int d;}
然后
A myA;我把myA写入文件后在读出来后是这样
01 01 01 00 00 00 00 60
bool bool bool 填充 int
当然相应的成员变量我已经赋过值了我发现可能是32位的原故,CFile 无论Write Read 都是4个字节一读或一写,如果当前4字节可以写下变量就写,写不下变量就条转到下4个字节去写,无论当前的4位字节有没有写完有没有人有办法改变这个机制?
CLASS A
{bool a;
bool b;
bool c;
int d;}
写入文件后发现数据部分占了8个字节,第3个bool后自动填充了一个字节,当我Read的时候,编译器也跳过了那个填充的字节,我想问有办法不条过那个字节吗?
内存里大概是这样的,
01 01 01 00 00 00 00 60
bool bool bool 填充 int
CLASS A
{bool a;
bool b;
bool c;
int d;}
然后
A myA;我把myA写入文件后在读出来后是这样
01 01 01 00 00 00 00 60
bool bool bool 填充 int
当然相应的成员变量我已经赋过值了我发现可能是32位的原故,CFile 无论Write Read 都是4个字节一读或一写,如果当前4字节可以写下变量就写,写不下变量就条转到下4个字节去写,无论当前的4位字节有没有写完有没有人有办法改变这个机制?
解决方案 »
- HOOK API TrackMouseEvent
- 一个很诡异的COM问题,望大虾们帮忙
- 请问一个windows2000下的socket编程问题
- 如何在程序中实现关闭已经运行的程序!
- vc中运用access数据库显示的问题??
- 修改了一个文件的文件名字后,文件的什么属性会改变呀?
- 初始化套接字和WSAStartUp中的版本号问题
- 怎样在VC中 存储注册表 REG_MULTI_SZ类型的字符串??????
- 怎么样把这样的一个数(5.74532e-040)转换为float?
- 为什么在VC6能够编译成功的程序在Microsoft Visual Studio .NET(VC7)中编译失败??
- vc调用prolog编译后的.exe文件
- 谁能提供一些关于动态连接库的一些信息啊
category:选择code Cgeneration
suruct member alignment:改成1byte的
-----------------------------------------------------------------
没有这一说;看看你读些的那些代码。
category:选择code Cgeneration
suruct member alignment:改成1byte的
-------------------------------------
这样没用,而且这里是设的结构体的成员把?
实际情况是这样
01 01 01 FF 00 00 00 06
我想从这个FF开始读,但程序是从00开始读的,
程序为myFile.Read(myA,sizeof(myA));
myA有4个变量 3个bool 一个int
有办法解决吗?
{int a;
int b;
int c;
int d;}
suruct member alignment:改成1byte的,这个方法我用过了,没用,还是跳过了那个字节
tufaqing()说的没错
&myA才是myA的内存起始地址