当我将结构写入文件时,文件中的内存如何设置?例如这个结构和函数:
struct vector3D
{
public:
float x, y, z;
vector3D(float modelX, float modelY, float modelZ)
{
x = modelX;
y = modelY;
z = modelZ;
}
vector3D()
{
x = 0;
y = 0;
z = 0;
}
}
inline void writeVector3D(vector3D vec, FILE *f)
{
fwrite((void*)(&vec), sizeof(vector3D), 1, f);
}
主要代码如下:
vector3D vec(1, 2, 3);
writeVector3D(vec, file);
文件中的信息如何设置?它喜欢 123
吗?
或者结构有不同的设置?
最佳答案
您可能需要阅读以下内容:
- 数据结构对齐 ( http://en.wikipedia.org/wiki/Data_structure_alignment ) - 有关结构成员在内存中排列方式的信息
- 字节序 ( Endianness ) - 有关单个变量在内存中的排列方式的信息
- 内存中的浮点表示(无法添加第三个链接)- 因为浮点变量比整数变量“奇怪”得多。
数据将按照它们在内存中的顺序写入,包括对齐间隙。
关于c++ - 将结构写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24415600/