C中的AND/OR链

2 c expression-evaluation

我对此非常肯定,但为了安全起见:

C标准是否保证AND链(A && B && ...)从左到右进行评估,一旦有0,评估就会停止?

OR的问题相同.(只要有1)

我可以依靠其他C风格的语言吗?

这段代码是否安全:

if (somePtr!=NULL && somePtr->someMember==123)
{
     ...
}
Run Code Online (Sandbox Code Playgroud)

sha*_*oth 10

是的,保证C,C++和C#.对于Delphi而言,启用"短曲线评估"也是如此.

这是许多代码行依赖于此时的行为.