声明mArrayTemp
struct _ARRAY_DATA
{
int nCode;
short sDuration;
short sCount;
};
_ARRAY_DATA mArrayTemp[400];
mArrayReal已包含一些数据,可以复制
for(int i = 0; i < 400, ++i)
{
mArrayTemp[i].nCode = mArrayReal[i].nCode;
mArrayTemp[i].sDuration = mArrayReal[i].sDuration;
mArrayTemp[i].sCount = mArrayReal[i].sCount;
}
//then we do something here
对于下一阶段,比较两个数组mArrayTemp
和mArrayReal
的最有效方法是什么,以确保它们仍然相同,并且在某些代码中没有任何变化?
答案 0 :(得分:1)
if (memcmp(mArrayTemp, mArrayReal, sizeof(mArrayTemp) == 0)
{
//they have the same values
}
答案 1 :(得分:0)
memcmp
不是比较两个数组的最佳方法。使用std::equal。我特别喜欢使用Boost.Range来很好地引用整个集合,它提供了equal的形式。
if (equal(mArrayTemp, mArrayReal)) { ⋯
不要担心填充,因为编译器会做正确的事情。这不是像memcmp那样的任何类型知识的终结。