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 に答える