为什么要编译:

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,这个IDE用于编译,但不在eclipseide上。
基本上,有一堆隐式转换过去是用来编译的,但现在是非法的我想知道这个问题的原因,以及在eclipse上可能的解决方法,以便再次发出警告。

最佳答案

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

关于c - 非法隐式转换无符号指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16568875/

10-12 15:02