非符号指针的非法隐式转换

时间:2013-05-15 15:15:32

标签: c eclipse pointers codewarrior

为什么要编译:

char * tst1=0;
short * tst2=0;
tst1=tst2;
tst2=tst1;

但这不是:

unsigned char * tst1=0;
unsigned short * tst2=0;
tst1=tst2;
tst2=tst1;

这只是一个显示我得到的编译错误的示例。我正在将一个项目从较旧的IDE移植到一个新的基于eclipse的IDE,这用于编译但不在eclipse IDE上。

基本上,有一堆隐式转换用于编译但现在是非法的。我想知道这个的原因以及在eclipse上可能的解决方法,使其再次成为警告。

1 个答案:

答案 0 :(得分:1)

原因是从eclipse传递到C编译器的不同参数。尝试在之前的IDE配置中找到它们或从其输出窗口中查找它们。如果您当前的IDE基于Eclipse,您应该能够毫无问题地更新编译器设置(因为它可以在Eclipse上配置,如果不改变这样的设置将是疯狂的......)。