反转数组和反转字节序函数(C++ template)

#include <algorithm>
using namespace std;

/**	反转数组
 *	@param arrayAddr	需要反转的数组地址(指针)。
 *	@param arrayLen		数组的长度。
 *	@return 反转后的数组地址;如果@p arrayLen<=0,则返回NULL。
 *	@author Fongluo
 *	@date  2008/07/09 10:00
**/
template<typename ARRAY_ADDRESS >
ARRAY_ADDRESS reversArray(ARRAY_ADDRESS arrayAddr, size_t arrayLen)
{
	if(arrayLen <= 0)
		return NULL;

	ARRAY_ADDRESS pStart	= arrayAddr;
	ARRAY_ADDRESS pEnd		= pStart + (arrayLen - 1);
	
	for(; (pStart!=pEnd) && (pEnd<pStart); pStart++, pEnd--)
	{
		swap((*pStart), (*pEnd));
	}

	return arrayAddr;
}

/**	反转字节序
 *	按字节反转,没有处理奇偶长度问题。
 *	@param _value 需要反转的数据。
 *	@author Fongluo
 *	@date  2008/06/06 10:00
**/
template<typename VALUE_TYPE >
VALUE_TYPE reversByteOrders(VALUE_TYPE _value)
{
	size_t stValueLen = sizeof(_value);
	
	reversArray<unsigned char *>((unsigned char *)&_value, stValueLen);

	return _value;
}

posted on 2008-07-09 10:25 FongLuo 阅读(1237) 评论(1)  编辑 收藏 引用

评论

# re: 反转数组和反转字节序函数(C++ template) 2008-10-26 09:39 缘之恋

一切的一切都是命中注定,谁都改变不了的事实  回复  更多评论   


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2009年8月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

导航

常用链接

留言簿

随笔分类(11)

随笔档案(79)

文章档案(1)

收藏夹(38)

学习网站

一般网站

最新随笔

搜索

积分与排名

最新评论

阅读排行榜