for (; cnt--; dp += sz)
{
pair_sanitize_struct(rec_id, ctx->api_mode, dp, FALSE);
}有人能解释一下这个for循环是如何工作的吗?它属于cpp文件。我不明白for循环中的条件以及它是如何被检查的。(正在调用该函数)
发布于 2013-09-25 06:11:45
for语句的一般形式如下所示:
for (init-statement; condition; expression)
statementinit-statement用于初始化或分配在循环过程中修改的起始值。condition充当循环控件。只要condition的计算结果为true,就会执行statement。只有在expression为真的情况下,每次迭代才计算condition。
回到您的代码:
for (; cnt--; dp += sz)init-statement这里是一个空语句,它什么也不做。condition是cnt--,它将其值计算为cnt,然后递减1。如果cnt为非零,则condition为真,如果cnt为零,则condition为false.
发布于 2013-09-25 06:07:37
该条件被解释为真假方案。
如果为0,则为假,否则为真。
发布于 2013-09-25 06:12:42
这相当于以下代码-
for(; cnt-->0; dp += sz);因为只要一个值不等于0,它就被认为是真。
https://stackoverflow.com/questions/18997370
复制相似问题