2

为什么会这样编译:

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 上可能的解决方法,以使其再次成为警告。

4

1 回答 1

1

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

于 2013-05-15T15:23:24.183 回答