我正在开发一些嵌入式设备,该设备有一个SDK。它有一个方法如下:
MessageBox(u8*, u8*); // u8 is typedefed unsigned char when I checked
但我在他们的示例中看到了调用代码,例如:
MessageBox("hi","hello");
传递字符指针时没有进行类型转换,这能够得到好的定义吗?我询问这个问题是因为我在代码上运行了一些工具,并且它抱怨上述的不匹配:
messageBox("Status", "Error calculating \rhash");
diy.c 89 Error 64: Type mismatch (arg. no. 1) (ptrs to signed/unsigned)
diy.c 89 Error 64: Type mismatch (arg. no. 2) (ptrs to signed/unsigned)
有时我会得到不同的意见,这更让我感到困惑。 所以归纳起来,按照上述方法使用他们的API,是否存在问题? 它会崩溃程序吗?
还有一件事情,很高兴听到正确的方法,如何将字符串传递给期望unsigned char*
的SDK方法而不会导致约束违规?