我有一个旧编译器的遗留项目,我们传递一个编译器标志(类似于-DCHAR_AS_UNSIGNED)来处理' char'输入无符号。编译器是一个非常古老的专有编译器,我们在命令行中单独运行,而不是通过Eclipse运行。我们有很多旧代码,它们使用unsigned char *作为字符串而不是char *。默认情况下,Eclipse会按原样处理,并警告将unsigned char *传递给期望char *的例程是不对的。有没有办法让Eclipse忽略这些并像处理编译器那样对待它?
答案 0 :(得分:0)
我能够实现的最接近的是向项目添加全局定义的符号(项目 - >属性 - >路径和符号 - >符号),将char
定义为{ {1}}。
在大多数情况下它都有效,因为我所关注的大部分遗留代码都没有使用unsigned char(这会解决这个问题)。对于特定宽度的整数类型,我们的typedef似乎表现得很好(unsigned char
例如定义为U8
)。在文件中使用typedef unsigned char U8
时,此解决方案无效,因为它会扩展为unsigned char
。