看起来强制char是unsigned char的工作原理如下:

1)Clang -funsigned-char命令行选项 . 2)GCC相同3)Visual Studio / J选项

在尝试构建Cocoa应用程序的XCode(即Clang)中,我执行了以下操作:项目 - >构建设置 - > Apple LLVM 5.1语言 - >'char'类型未签名

重建所有方案:

我仍然得到“从'const char *'分配给'const unsigned char *''指针转换为具有不同符号的整数类型”编译器警告 .

我也尝试将-funsigned-char添加到编译器标志中无济于事 .

我无法确定所需的Clang pragma来禁用警告消息:(即#pragma clang diagnostic忽略“-Wsomething-message”) . [如果Clang的未来版本有像Visual Studio这样的警告数字可以消除跟踪文本的难度,那将是很好的 .

我决心禁用警告 .

(我对转换每个操作都不感兴趣 . 在所有情况下,char都用于字符串或字节指针,在任何情况下都不执行任何数学运算 . 我只想推送字节 . )

[#pragma clang diagnostic忽略“-Wsign-compare”似乎也没有消除警告......]