首頁  >  文章  >  後端開發  >  C/C 中的明確與隱式 NULL 檢查:哪種方法比較好?

C/C 中的明確與隱式 NULL 檢查:哪種方法比較好?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-01 13:29:40974瀏覽

Explicit vs. Implicit NULL Checks in C/C  : Which Approach Is Better?

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 符號的定義。
  • 它可以與提供 bool 轉換的 C 類別一起使用。

異常

但是,在某些情況下,顯式NULL 比較可能會更合適,例如當:

  • 需要異常清晰。
  • 程式碼可以由非 C 程式設計師解釋。
  • 程式碼經過嚴格最佳化且隱式檢查可能會導致不必要的開銷。

以上是C/C 中的明確與隱式 NULL 檢查:哪種方法比較好?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn