我有一个 C++
struct
,其中包含整数和 static 数组,如下所示:
struct sMyStruct {
unsigned int uiVal;
int iVal1;
int iVal2 = 0;
float afVals[ NUM_VALUES ];
unsigned char auiVals[ NUM_VALUES ];
float aafVals[ NUM_VALUES ][ NUM_VALUES_2 ];
};
其中
NUM_VALUES
和 NUM_VALUES_2
在编译时被 #define
d。
我可以安全地假设,允许成员之间进行一些填充以适应对齐边界,此结构中的每个成员(包括数组)将在内存中连续(连续)布局?
我将此结构传递给 LabVIEW 应用程序,只有三个整数和第一个数组 (
afVals
) 安全到达。最后两个数组丢失了,我不知道为什么。
非常感谢所有发表建设性意见的人:我想我现在有了答案!看来普遍的共识是:是的,我可以安全地假设结构的所有成员(包括数组)将在内存中连续布置(允许插入任何填充以进行对齐)。