任何人都可以解释我,为什么这部分代码的行为不同?
while((c = fread(buf, sizeof(char), 1, f)) != 0);
{
if(write(t, buf, c) < 0)
{
return E_MSGSEND;
}
}
/////////////////////////////////////
do
{
c = fread(buf, sizeof(char), 1, f);
if(write(t, buf, c) < 0)
{
return E_MSGSEND;
}
} while(c != 0);
Run Code Online (Sandbox Code Playgroud)
虽然{}只运行1次但是{}运行5次.什么是差异?在{} c初始化为1之前.
谢谢你的建议
Pét*_*rök 25
你的第一个分号后你有一个分号while:
while((c = fread(buf, sizeof(char), 1, f)) != 0);
Run Code Online (Sandbox Code Playgroud)
这实际上使它成为一个空循环,它可能执行与另一个循环相同的次数,但它的主体不包含任何语句.if但是,以下内容不再是该循环的一部分,因此它只执行一次.
| 归档时间: |
|
| 查看次数: |
284 次 |
| 最近记录: |