为什么这两个语句不等价?
如果 i==3 则执行 fork()。
如果 i!=3 则 fork() 不会被执行。
这是怎么回事?这是某种编译器优化故障吗?
if((i==3) && (fork()==0))
if((fork()==0) && (i==3))
最佳答案
这称为short-circuit evaluation 。如果第一项为 false,您知道整个 &&
将为 false,因此许多语言故意跳过第二个评估。
关于c - IF 语句中没有 fork ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29352802/