c++ - 将结构写入文件

标签 c++ file memory struct

当我将结构写入文件时,文件中的内存如何设置?例如这个结构和函数:

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/

相关文章:

C++ 函数曾经工作,现在返回 0xfdfdfdfd

c++ - 如何使用 C++ 接口(interface)初始化和访问 openCV 中 Mat 标量矩阵中的条目?

c++ - 访问文本文件中的最后 6 行 C++

linux - 正在运行的 Linux 进程的最大堆大小

c++ - 是否有可能避免在 C++ 中链接标准库

c++ - 具有默认参数的成员初始化列表

c - 在C中打开文件如何防止读取错误的数据类型

C++指针函数导致空参数

python - 在 Python 中重用名称以节省内存

c++ - malloc 小于 8 字节