C/C 中的指標空驗證
在程式碼審查討論中,貢獻者提倡在C/C 中使用顯式NULL檢查以下格式:
<code class="c">int * some_ptr; if (some_ptr == NULL) { ... }</code>
而不是隱式檢查:
<code class="c">int * some_ptr; if (some_ptr) { ... }</code>
這提出了首選哪種方法以及原因的問題。
顯式 NULL比較
顯式NULL比較的意圖更加明確,明確指出指針不能為NULL。它還可以防止意外賦值,因為以下內容無效:
<code class="c">if (some_ptr = NULL) { ... }</code>
隱式NULL 檢查
隱式NULL 檢查更簡潔,不太可能引入錯誤由於分配錯誤。它依賴於這樣一個事實:if 語句中的指標變數被隱式評估為其真實性(非 NULL 或 NULL)。
推薦
一般來說,它最好使用隱式 NULL 檢查,原因如下:
異常
但是,在某些情況下,顯式NULL 比較可能會更合適,例如當:
以上是C/C 中的明確與隱式 NULL 檢查:哪種方法比較好?的詳細內容。更多資訊請關注PHP中文網其他相關文章!