1
CvMat* nextimg = 0;
int firstframe;


firstframe=nextimg==0;

「==0」を入れないと、次の警告が返されます。

[Warning] assignment makes integer from pointer without a cast
4

4 に答える 4

2
firstframe=nextimg==0;

次の 2 つの操作を実行しています。

  1. チェックするnextimg==0
  2. #1ブール値の結果をto に割り当てますfirstframe

, ステートメントを削除する==0と、ポインターが整数に割り当てられるため、警告が発生します。

于 2013-01-21T15:33:57.247 に答える
2

その短縮された同等物

int firstframe;
if (nextimg == 0) {
    firstframe = 1;
}
else {
    firstframe = 0;
}
于 2013-01-21T15:34:27.510 に答える
0

これは次のコードと同等です。

CvMat* nextimg = NULL;
int firstframe;

firstframe = (nextimg == NULL);

の条件はnextimg == NULL、falseの場合は0を返し、trueの場合は1を返します。

于 2013-01-21T17:32:28.893 に答える
0

firstframe=nextimg==0;- ここでnextimgは、ゼロに等しいかどうかのチェックが行われています。チェックが完了すると、戻り値はTRUEまたはになりますFALSE。その戻り値は に割り当てられfirstframeます。条件チェックの戻り値がここに代入されているため、警告はありません。

firstframe=nextimg;- ここで の値nextimgが に割り当てられfirstframeます。NULL ポインターが割り当てられてnextimgいるため、その警告が表示されます。

于 2013-01-21T16:22:39.727 に答える