有人可以告诉我这句话是如何运作的。我可以理解,两个整数被定义为besti
和bestSAD
。 bestSAD
值取决于条件(last ==-1)
,如果为真,则等于MAX_UINT
,如果不等于psList[last].getSAD(sElement)
。但结果并没有证实这一点。
int besti = last, bestSAD = (last == -1) ?
MAX_UINT : psList[last].getSAD(sElement);
将这些放在一个声明中有什么好处? 提前谢谢。
答案 0 :(得分:0)
与以下内容相同:
int besti;
int bestSAD;
besti = last;
if ( last == -1 )
bestSAD = MAX_UINT;
else
bestSAD = psList[last].getSAD(sElement);
MAX_UINT
不是标准C ++的一部分,它可能是您未在某处显示的头文件中定义的内容。如果它们意味着UINT_MAX,那么这一行会导致实现定义的行为(编写此代码的人可能会假设它将生成bestSAD == -1
,但这并不能保证。)