Rumah >pembangunan bahagian belakang >C++ >Mengapakah `(NULL == bCondition)` Diutamakan Daripada `(bCondition == NULL)` dalam C/C ?
Membezakan Antara '(bCondition == NULL)' dan '(NULL == bCondition)'
Dalam pelbagai konteks pengaturcaraan, terutamanya apabila merujuk sumber MSDN, anda mungkin menghadapi dua ungkapan bersyarat yang kelihatan boleh ditukar ganti: '(bCondition == NULL)' dan '(NULL == bSyarat)'. Walaupun mereka mungkin kelihatan setara pada pandangan pertama, terdapat perbezaan yang ketara dalam tingkah laku mereka apabila mengendalikan kemungkinan kesilapan menaip.
Apabila membandingkan pembolehubah kepada NULL, penggunaan '(NULL == bCondition)' diutamakan untuk ralat yang lebih baik pengesanan sekiranya berlaku salah letak pengendali tugasan '=' dan bukannya operator perbandingan '=='. Pertimbangkan contoh berikut:
Kod:
if (bCondition = NULL) // Typos { // Code never executes }
Dalam keadaan ini, kesilapan menaip telah berlaku apabila '=' (tugasan) telah tersilap digunakan dan bukannya '= =' (perbandingan). Ini menyebabkan pernyataan bersyarat sentiasa menilai kepada 'palsu' kerana pengendali tugasan memberikan NULL kepada 'bCondition' dan bukannya membandingkannya. Akibatnya, kod dalam blok tidak akan pernah dilaksanakan.
Sebaliknya, jika kita menggunakan '(NULL == bCondition)' sebaliknya:
Kod:
if (NULL = bCondition) // Error { // ... }
Dalam kes ini, pengkompil akan mengesan kesilapan menaip dan mengeluarkan ralat yang menunjukkan bahawa tugasan NULL kepada bCondition ialah operasi yang tidak sah. Pengesanan ralat ini berfungsi sebagai perlindungan terhadap penugasan tidak sengaja yang berpotensi membawa kepada tingkah laku program yang tidak dijangka.
Oleh itu, tatatanda '(NULL == bCondition)' biasanya disyorkan untuk menyemak keadaan dengan NULL kerana ia memberikan lebih mantap pengendalian ralat sekiranya berlaku kesilapan menaip.
Atas ialah kandungan terperinci Mengapakah `(NULL == bCondition)` Diutamakan Daripada `(bCondition == NULL)` dalam C/C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!