gpt4 book ai didi

c - Solaris sparc 和 Solaris x86 之间的结构大小差异

转载 作者:行者123 更新时间:2023-12-02 08:59:34 26 4
gpt4 key购买 nike

我正在将我们的应用程序从solaris sparc 移植到solaris x86,并且我遇到了这两种体系结构之间的结构大小差异。例如;我有一个类似的结构

typedef struct mystructS
{
double a;
double b;
double c;
double d;
double e;
double f;
double g;
double h;
double aa;
double ab;
double ac;
double ad;
double ae;
double af
double ag;
double ah;
int ba;
int bb;
int bc;
char ca[256];
} mystructT;

当我在Solaris X86中写入sizeof(mystructT)时,它返回396

当我在Solaris SPARC中写入sizeof(mystructT)时,它返回400

我只是好奇,为什么会发生这样的事情?

编辑:两个 Solaris 系统都是 32 位。

最佳答案

无论出于何种原因(也许 double 需要在 sparc 上对齐,而不是在 x86 上对齐?),它似乎试图确保下一个结构在 64 位边界上对齐。

也就是说,为了让您在内存中跳转 sizeof(mystructT) 步骤,并且最终仍然指向结构的开头(例如,在创建结构数组时,这就是您在迭代它),该结构必须在末尾填充。

关于c - Solaris sparc 和 Solaris x86 之间的结构大小差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2309792/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com