Eclipse CDT - 将'char'视为无符号

Eclipse CDT - Treat 'char' as unsigned

本文关键字:无符号 char CDT Eclipse      更新时间:2023-10-16

我有一个旧编译器的遗留项目,我们传递一个编译器标志(类似于-DCHAR_AS_UNSIGNED)来处理'char'类型为unsigned。编译器是一个非常老的专有编译器,我们在命令行中单独运行,而不是通过Eclipse运行。我们有很多旧代码使用unsigned char*而不是char*来表示字符串。默认情况下,Eclipse按照它应该的方式处理这个问题,并警告将unsigned char*传递给期望char*的例程是不正确的。是否有一种方法可以让Eclipse忽略这些,并像我们的编译器那样对待它们?

我所能实现的最接近的是向项目添加一个全局定义的符号(项目->属性->路径和符号->符号),它将char定义为unsigned char

在大多数情况下它是有效的,因为我所关心的大多数遗留代码都没有使用unsigned char(这会破坏这个解决方案)。它甚至似乎与我们对特定宽度的整型的类型(例如,U8被定义为typedef unsigned char U8)表现良好。此解决方案不适用于文件中使用unsigned char的地方,因为它将被扩展为unsigned unsigned char