2

私はこれについてかなり肯定的ですが、安全のために:

C 標準は、AND チェーン (A && B && ...) が左から右に評価され、その評価が 0 になるとすぐに停止することを保証しますか?

ORについても同じ質問です。(1が出たらすぐ)

他の C スタイルの言語でこれを当てにできますか?

このコードは安全ですか:

if (somePtr!=NULL && somePtr->someMember==123)
{
     ...
}
4

4 に答える 4

10

はい、C、C++、および C# で保証されています。同じことが、「短時間の評価」が有効になっている Delphi にも当てはまります。

これは、現時点で多数のコード行が依存している動作です。

于 2009-06-09T13:57:55.667 に答える
3

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

于 2009-06-09T13:57:57.273 に答える
0

はい、C での操作の順序に関する仮定は正しく、コード スニペットは意図したとおりに機能します。ケースバイケースで他の「Cスタイル」言語を使用します。

于 2009-06-09T13:58:02.000 に答える