【发布时间】:2009-02-25 09:10:46
【问题描述】:
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] );
}
}
这个方法现在的作用是反转内存中的字节。我想知道的是,有没有更好的方法来获得相同的效果?整个“size / 2”部分似乎是一件坏事,但我不确定。
编辑:我刚刚意识到我给这个问题的标题是多么糟糕,所以我[希望]修正了它。
【问题讨论】:
-
您的示例似乎有缺陷,您如何在没有位置的情况下交换两个字符?我怀疑你需要传递地址。