私は、short int型のエンディアンを交換するための基本的な機能を作成しようとしているが、それはエラーを投げています:C不正なオペレータエラー
short val = 0x1234;
SwapEndian(&val);
//val now contains 0x3412
:
#ifndef __ENDIAN__
#define __ENDIAN__
#define Swap16(value) \
((((unsigned short)((value) & 0x00FF)) << 8) | \
(((unsigned short)((value) & 0xFF00)) >> 8))
#define Swap32(value) \
((((unsigned)((value) & 0x000000FF)) << 24) | \
(((unsigned)((value) & 0x0000FF00)) << 8) | \
(((unsigned)((value) & 0x00FF0000)) >> 8) | \
(((unsigned)((value) & 0xFF000000)) >> 24))
void __inline SwapEndian(short* value) //ERROR HERE
{
*value = Swap16(value);
}
#endif
は、私のようなコードを使用します
私はVS2008を使用していますし、正確なエラーは次のとおりです。
C2296: '&' : illegal, left operand has type 'short *'
私はこのエラーを修正するために何ができますか?