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]);
}
}
這個方法現在做的是它在內存中反轉字節。我想知道的是,是否有更好的方法來獲得相同的效果?整個「尺寸/ 2」部分似乎是一件壞事,但我不確定。有沒有更好的方法來反轉內存中的字節數組?
編輯:我剛剛意識到我爲這個問題提出的標題有多糟糕,所以我[希望]修復它。
你的例子似乎有缺陷,你怎麼能交換兩個字符沒有位置?我懷疑你需要通過地址。 – leppie 2009-02-25 16:45:33