0
如果我們假設我對齊的內存塊與包括memalign到4字節,將它仍然是安全的事:內存對齊和長拷貝
unsigned int* source = In.Data;
unsigned int* dest = Out.Data;
int loops = In.Size/4; //size is the same for both in/out
while (loops)
{
*dest++=*source++;
loops--;
}
,而不要照搬1個字節的消息嗎?如果不是如何判斷內存是否正確對齊,以便在需要時回退到標準字節拷貝?
您必須將內存與「alignof(unsigned int)」對齊,而不是「4字節」。 – 2012-04-06 10:31:33
是的,我這樣做(sizeof(unsigned int))D: – user1010005 2012-04-06 10:34:15
雖然通常不需要'alignof(T)== sizeof(T)'。例如,考慮'long double'類型。 – 2012-04-06 10:38:19