假设我有这样一种结构:
typedef struct {
double re;
double im;
}ComplexStruct;
数组相关:
typedef double ComplexArr[2];// [0] -> 实部, [1] -> 虚部
今天我使用简单的 for
循环从 ComplexStruct
复制到 ComplexArr
,反之亦然:
//ComplexArr to ComplexStruct
for (i = 0 ; i < NumEl; i++)
{
ComplexStructVec[i].re = ComplexArrVec[i][0];
ComplexStructVec[i].im = ComplexArrVec[i][1];
}
//ComplexStruct to ComplexArr
for (i = 0 ; i < NumEl; i++)
{
ComplexArrVec[i][0] = ComplexStructVec[i].re;
ComplexArrVec[i][1] = ComplexStructVec[i].im;
}
有没有一种安全使用 memcpy
至少其中一个方向的方法?还有比 for
循环更快的方法吗?
memcpy
在两个数组之间进行复制。但是在(很可能的)情况下,如果sizeof(ComplexStruct) == sizeof(ComplexArr)
,那么使用memcpy
就可以工作。 - Some programmer dude