このチェックが高速コードパスの関数内に存在する場合、NULL のポインターをチェックする最も効率的な方法は何ですか?
1 に答える
1
同じ効率を期待するのが合理的
if (!p)
if (p == NULL)
if (p == 0)
if (NULL == p) // Jedi comparison
if (0 == p) // Jedi comparison
賢明なコンパイラで同じコードにコンパイルします。クレジット: @Will.
ジェダイの比較は、意図したとおりにキャッチ=
され==
ます (クレジット: @Sanyam Goel)
私や他の人は、通常のif(p == ...)
方が読みやすいと感じています。(クレジット: @H2CO3)
私の本では、メンテナンスは開発に勝ります。if (p == NULL)
私は、何がテストされているかを最も明確に表現しているため、私はその理由を好む傾向があります。
質問は非常に基本的なものですが、完全な回答に値すると思います。しかし、賞賛は上記の素晴らしい議論に行きます. おそらくほとんどのプログラマーは、ある時点でこの質問について熟考します。
于 2013-08-03T13:13:49.747 に答える