为什么要编译:
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上可能的解决方法,使其再次成为警告。
答案 0 :(得分:1)
原因是从eclipse传递到C编译器的不同参数。尝试在之前的IDE配置中找到它们或从其输出窗口中查找它们。如果您当前的IDE基于Eclipse,您应该能够毫无问题地更新编译器设置(因为它可以在Eclipse上配置,如果不改变这样的设置将是疯狂的......)。