反轉(zhuǎn)數(shù)組和反轉(zhuǎn)字節(jié)序函數(shù)(C++ template)
#include <algorithm> using namespace std; /** 反轉(zhuǎn)數(shù)組 * @param arrayAddr 需要反轉(zhuǎn)的數(shù)組地址(指針)。 * @param arrayLen 數(shù)組的長(zhǎng)度。 * @return 反轉(zhuǎn)后的數(shù)組地址;如果@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; } /** 反轉(zhuǎn)字節(jié)序 * 按字節(jié)反轉(zhuǎn),沒(méi)有處理奇偶長(zhǎng)度問(wèn)題。 * @param _value 需要反轉(zhuǎn)的數(shù)據(jù)。 * @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 閱讀(2043) 評(píng)論(1) 編輯 收藏 引用