C++ 平台兼容性

标签 c++

一个对象 foo 被写入到平台 1 上的一个新文件中:

write( file, &myFoo, sizeof(struct foo) );

...然后在平台 2 上阅读:

read(file, &myFoo, filesize(file) );

foo 对象具有以下定义:

struct foo
{
    char  a;
    int   b; 
    long  c;
    char* d;
};

在平台 2 上加载 foo 时可能会出现什么样的问题?

最佳答案

各种问题!

我们不知道 charintlongchar* 的大小是否相同不同的平台。

d 指向的东西发生了什么?

成员之间也可能存在填充,这可能因平台而异。大端和小端系统将以不同的顺序存储整数和指针的字节。如果你真的不走运,可能还有一个中端系统。

关于C++ 平台兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6170543/

相关文章:

c++ - 运行时检查失败 #2 - 变量 'db' 周围的堆栈已损坏。 c++ (帮助)

c++ - 使用 std::begin 和 std::end 进行 vector 初始化

c++ - exc_bad_access 错误

c++ - 如何配置 Eclipse 以使用特定的 MinGW 工具链

c++ - 尝试在不使用 vector 的情况下在 C++ 中创建同一类的许多对象

c++ - 指针中的指针 : std:vector vs. 数组

C++用括号声明一个对象

C++:如何读取和写入文件夹

c++ - R-->cpp 如何获取 C++ 指针以与 sourceCpp 一起使用(贝尔曼福特算法)

c++ - SFINAE,演绎与实例化