我正在查看我正在使用的硬體介面的一些範例 C 程式碼,並注意到許多類似以下內容的語句:
if ( NULL == pMsg ) return rv;
我確信我聽過人們說將常數放在第一位是個好主意,但這是為什麼呢?這只是為了讓您在有一個很大的語句時可以快速看到您正在比較的內容還是還有更多內容?
P粉2266672902024-03-26 12:47:56
阻止你寫:
if ( pMsg = NULL ) return rv;
誤打誤撞。然而,一個好的編譯器會警告您這一點,因此大多數人不會使用「常量優先」方式,因為他們發現很難閱讀。
P粉1808446192024-03-26 09:11:54
這樣就不會混淆比較 (==) 和賦值 (=)。
如您所知,您不能分配給常數。如果你嘗試,編譯器會給你一個錯誤。
基本上,這是一種防禦性程式設計技術。為了保護自己免受自己的傷害。