警告将“char []”传递给“unsigned char *”类型的参数

RS *_*tem 1 c arm keil

我正在为 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)

顺便说一下,这些功能是有效的,但我收到了这个警告。如何去除?

Aja*_*jay 5

这是预期的警告, 但属于 预期"Token:"类型const char *
void WriteString(unsigned char *Msg_add)unsigned char *

您需要输入强制转换参数

WriteString((unsigned char*) your_data);
Run Code Online (Sandbox Code Playgroud)