CvMat* nextimg = 0;
int firstframe;
firstframe=nextimg==0;
如果我不输入“==0”,则返回以下警告:
[Warning] assignment makes integer from pointer without a cast
firstframe=nextimg==0;
它正在执行两个操作:
nextimg==0#1给firstframe如果删除==0, 语句会导致指针被分配给整数,因此会发出警告。
它的缩写相当于
int firstframe;
if (nextimg == 0) {
firstframe = 1;
}
else {
firstframe = 0;
}
firstframe=nextimg==0;- 这里正在检查nextimg它是否等于零。一旦检查完成,返回值将是TRUEor FALSE。该返回值将被分配给firstframe. 没有警告,因为这里分配了条件检查的返回值。
firstframe=nextimg;- 这里的值nextimg被分配给firstframe。分配了 NULL 指针,nextimg因此您会收到该警告。
它等效于以下代码:
CvMat* nextimg = NULL;
int firstframe;
firstframe = (nextimg == NULL);
的条件nextimg == NULL返回 0 表示假,1 表示真。