質問

私はかなりポジティブこの程度だけど、念のために:

C標準保証とチェーン(&& B && ...)は左から右に評価されないこと、およびその評価はすぐに0がありますように停止します?

ORのために同じ質問。 (とすぐそこだとして1)

私は他のCスタイルの言語のために、この上で数えることができますか?

このコードは安全です。

if (somePtr!=NULL && somePtr->someMember==123)
{
     ...
}
役に立ちましたか?

解決

はい、それはC、C ++とC#のために保証されています。同じことが有効になって「短いcurcuit評価」とデルファイのために行く。

このコードは、多数の行がこの瞬間にに依存している動作です。

他のヒント

はい、それはCとC ++の両方で標準化されます。

はい、Cでの操作の順序についてのあなたの仮定が正しいと意図したとおりのコードスニペットは動作します。私はケースバイケースで、他の「C-スタイル」の言語を取るだろう。

はい、それはありません。

私はそれが不明確だと思った人を見てきましたし、このフォームで&&さんを置き換えます:

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

個人的に私はそれはちょっと醜いだと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top