天天

pointer targets in passing argument 1 of 'TxRomUart' differ in signedness

0
阅读(5436)

warning: pointer targets in passing argument 1 of 'TxRomUart' differ in signedness

警告的提示是:传递的指针和TxRomUart函数的参数不一样

函数原型:
//----------------------------------------------------------
//---fuc:发送ROM数据到串口
//----------------------------------------------------------
void TxRomUart(const uint8 *data,uint16 leng)
    {
 while(leng)
     {
     while(!((UCSRA)&(1<<UDRE)));//串口准备好,接收数据
     UDR=*data;data++;leng--;
     }
 }

函数引用:TxRomUart("initial!",8);

出现警告warning: pointer targets in passing argument 1 of 'TxRomUart' differ in signedness

修改为:  TxRomUart((const unsigned char *)"initial!",8);

无警告。

上面的方法属于强制转换类型

还有一种就是修改函数定义:

把原函数修改为const char类型就可以去除那些警告了
const unsinged char和const singed char都不行
可以参考下http://www.cesdn.org/thread-1010-1-1.html