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”部分似乎是一件坏事,但我不确定。
编辑:我刚刚意识到我给这个问题的标题是多么糟糕,所以我[希望]修正了它。
最佳答案
标准库有一个 std::reverse
功能:
#include <algorithm>
void ReverseBytes( void *start, int size )
{
char *istart = start, *iend = istart + size;
std::reverse(istart, iend);
}
关于c++ - 有没有更好的方法来反转内存中的字节数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/585257/