byteordr.cpp

来自「一个优化的H.263解码器,性能达到商用级」· C++ 代码 · 共 50 行

CPP
50
字号
//#include "mdtrace.h"
#include "byteordr.h"

void Swap(void* pData, int size)
{
    static int s_nDummy = 1;

    if(*(char*)(&s_nDummy) != 0)
    {
		unsigned char* pch = (unsigned char*)pData;

		//ASSERT(size > 0);

		for(int i = 0; i < size / 2; i++)
		{
			unsigned char chTemp;
			chTemp = pch[i];
			pch[i] = pch[size-1-i];
			pch[size-1-i] = chTemp;
		}
	}
}

unsigned long Net2HostLong(unsigned long l)
{
	unsigned long temp = l;
	Swap(&temp, sizeof(unsigned long));
	return temp;
}

unsigned short Net2HostShort(unsigned short s)
{
	unsigned short temp = s;
	Swap(&temp, sizeof(unsigned short));
	return temp;
}

unsigned long Host2NetLong(unsigned long l)
{
	unsigned long temp = l;
	Swap(&temp, sizeof(unsigned long));
	return temp;
}

unsigned short Host2NetShort(unsigned short s)
{
	unsigned short temp = s;
	Swap(&temp, sizeof(unsigned short));
	return temp;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?