使用gcc编译器时,我是一个赋值警告
warning: assignment makes pointer from integer without a cast [enabled by default]
功能很简单
char* pShortToBuffer_Parse( char* DisBuff, short value )
{
*DisBuff++ = (char) (value >> 8);
*DisBuff++ = (char) value;
return DisBuff;
}
我正在像下面那样打电话
short PacketSize = 0;char* PbufDst;
PbufDst = pShortToBuffer_Parse( PbufDst, PacketSize);
当我不返回PbufDst的地址时,警告消失了
pShortToBuffer_Parse( PbufDst, PacketSize);
不确定我在这里缺少什么,我在同一条代码中使用微芯片xc32-gcc编译器时没有任何问题也没有警告;
任何想法的人?
答案 0 :(得分:0)
编译器尝试翻译的时刻
PbufDst = pShortToBuffer_Parse( PbufDst, PacketSize);
它似乎还不了解pShortToBuffer_Parse()
。在这种情况下,C标准定义假定int
为返回值,导致尝试将此int
分配给PbufDst
char*
。
要解决此问题,请将pShortToBuffer_Parse()
的声明或定义放在前面。