我对此非常积极,但为了安全起见:

请问C标准保证和链条(A &&乙&& ...)进行评估左到右,并评价将尽快有一个0停下来?

为OR同样的问题。 (只要有一个1)

我能指望这对于其他C风格的语言?

这是代码安全的:

if (somePtr!=NULL && somePtr->someMember==123)
{
     ...
}
有帮助吗?

解决方案

是,它是保证为C,C ++和C#。这同样适用于Delphi的启用“短curcuit评价”。

这是代码的行为众多线靠这一刻。

其他提示

是,它是由C和C ++规范。

是的,你对运营C中的顺序假设是正确的,并如预期的代码段将工作。我将采取上的情况下,逐个其他“C式”的语言。

是它的作用。

我见过的人谁认为这是不明确,以及与此形式代替&&的:

if (a)
if (b)
if (c)
if (d) {
}

我个人认为这是有点丑。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top