C++ 持久性的后果(大/小)

C++ 持久性的后果(大/小),c++,mfc,C++,Mfc,我正在开发只在windows上运行的程序,从windows xp到windows 10。使用MFC。我是否必须关心持久性问题。将有许多结构转换为字节数组,并从文件中写入和读取 typedef struct { int Userid; __int64 StartDate; __int64 EndDate; int DaysLeft; WCHAR Email[2

我正在开发只在windows上运行的程序,从windows xp到windows 10。使用MFC。我是否必须关心持久性问题。将有许多结构转换为字节数组,并从文件中写入和读取

typedef struct
{
   int              Userid;
   __int64          StartDate;
   __int64          EndDate;
   int              DaysLeft;
   WCHAR            Email[256];
   WCHAR            Serial[256];
   WCHAR            UserApplied[229];
   WCHAR            Country[256];
   WCHAR            Address[256];
}RecordInfo;

持久性(大/小)的后果是什么。C++中是否有编写Endiad无关代码的指南。或者,如果它只适用于单一平台(如仅适用于windows),则不必担心endian问题

为您找到。所有Windows系统都是little-endian,因此仅Windows程序没有问题。不同的编译器对数据对齐和结构填充也有不同的规则。使用Visual Studio创建所有程序以避免这些问题。@BarmakShemirani谢谢你,我更担心
Userid
StartDate
之间的填充。这里最简单的修复方法是:在
DaysLeft
之后移动
UserId
@MSalters结构的排列顺序是什么,这样就不会出现填充问题。正如您所建议的,在daysleft之后移动userid。我的程序中有许多结构,因此需要将所有结构按正确顺序排列。为您找到。所有Windows系统都是little endian,因此仅Windows程序没有问题。不同的编译器对数据对齐和结构填充也有不同的规则。使用Visual Studio创建所有程序以避免这些问题。@BarmakShemirani谢谢你,我更担心
Userid
StartDate
之间的填充。这里最简单的修复方法是:在
DaysLeft
之后移动
UserId
@MSalters结构的排列顺序是什么,这样就不会出现填充问题。正如您所建议的,在daysleft之后移动userid。我的程序中有很多结构,所以需要将所有结构按正确的顺序排列。