重複の可能性:
論理的な比較:左から右への評価は保証されていますか?
すべてのC関数の引数について、右端の引数が最初に実行/処理され、左に向かって進むと教えられてきました。右の部分が最初に実行され、左に向かって進みます。
これは&&や||などの条件に適用できますか???
C ++コードを記述している場合は、最初にNULL条件をチェックし、次にアクションを実行するかどうかをチェックします。例えば
if( CommDevice != NULL)
{
if(CommDevice->isOpen == TRUE)
{
//Do Something
}
}
これを変換できますかif((CommDevice != NULL) && (CommDevice->isOpen == TRUE) )
「コードは右から左に実行される」という恐怖が、CommDevice
NULLの場合はどうなるかを私に止めさせており、NULLのメンバーにアクセスしようとしています。例外が発生します。