我最近看到了一些vp8示例解码器代码,当我遇到这个时。
for(y=0; y<img->d_h >> (plane?1:0); y++) {
int iLength = img->d_w >> (plane?1:0);
iFrameCursor += iLength;
if(fwrite(buf, 1, iLength, outfile)); //This semicolon
buf += img->stride[plane];
}
知道if语句是什么意思吗?
答案 0 :(得分:15)
这里的分号与您说{ }
的分号相同。这只是一个空洞的陈述。
以下代码行都做同样的事情:
if(fwrite(buf, 1, iLength, outfile));
if(fwrite(buf, 1, iLength, outfile)) { }
fwrite(buf, 1, iLength, outfile);
答案 1 :(得分:1)
if (<expr>) <statement>
通常该语句是一个代码块,但它可以是一个空的语句(;
)。
代码相当于:
fwrite(buf, 1, iLength, outfile);
buf += img->stride[plane];
答案 2 :(得分:1)
如果是冒号,则使用instead of brackets。这似乎是一个错误。