typedef unsigned char Byte;
...
void ReverseBytes(void *start, int size)
{
Byte *buffer = (Byte *)(start);
for(int i = 0; i < size/2; i++) {
std::swap(buffer[i], buffer[size - i - 1]);
}
}
Phương pháp này hiện tại là nó đảo ngược byte trong bộ nhớ. Những gì tôi muốn biết là, có cách nào tốt hơn để có được hiệu quả tương tự không? Toàn bộ "kích thước/2" phần có vẻ như một điều xấu, nhưng tôi không chắc chắn.Có cách nào tốt hơn để đảo ngược một mảng byte trong bộ nhớ không?
EDIT: Tôi vừa nhận ra rằng tiêu đề tôi đặt cho câu hỏi này là xấu đến mức nào, vì vậy tôi [hy vọng] đã sửa nó.
Ví dụ của bạn có vẻ không hoàn thiện, làm cách nào bạn có thể trao đổi hai ký tự không có vị trí? Tôi nghi ngờ bạn cần vượt qua địa chỉ. – leppie