我正在为 ARM 控制器开发 Keil 编译器并用 C 语言编写代码。我遇到了这个警告,我收到了这个:
warning : passing 'char [7]' to parameter of type 'unsigned char *'converts between pointers to integer types with different sign.
Run Code Online (Sandbox Code Playgroud)
常规 :
void WriteString(unsigned char *Msg_add)
{
for(Lcd_pointer=0; Lcd_pointer < 16; Lcd_pointer++)
{
Write_lcd_data(*Msg_add);
Msg_add++;
if(*Msg_add == '\0')
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我用随机字符串传递上面的例程:
WriteString("Token:");
Run Code Online (Sandbox Code Playgroud)
顺便说一下,这些功能是有效的,但我收到了这个警告。如何去除?
这是预期的警告,
但属于 预期"Token:"类型const char *void WriteString(unsigned char *Msg_add)unsigned char *
您需要输入强制转换参数
WriteString((unsigned char*) your_data);
Run Code Online (Sandbox Code Playgroud)