ホームページ >バックエンド開発 >C++ >C の NULL と 0 : Null ポインターにはどちらを使用する必要がありますか?

C の NULL と 0 : Null ポインターにはどちらを使用する必要がありますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-25 11:05:18517ブラウズ

NULL vs. 0 in C  : Which Should I Use for Null Pointers?

Null ポインターのジレンマ: NULL 対 0

C コーディング実践のタペストリーの中で、 NULL ポインターの場合は NULL と 0 (ゼロ)。この議論の起源は、NULL が (void*)0 として定義されていた C の初期にあります。この制約により、割り当ては void ポインターに限定され、いくぶん非現実的になってしまいました。その結果、開発者は 0 を null ポインターとして使用する慣例を採用しました。

C の進化にもかかわらず、設定は維持されています。著者のように、プログラマの中には、null 値として直感的に使用できることと、真理値テスト (if (p && !q)) との互換性があるため、0 を好む人もいます。逆に、美学に基づいて NULL を主張する人もいます。

この現在進行中の疑問に対処するために、 C の作成者である Bjarne Stroustrup の視点を考えてみましょう。 Stroustrup の C スタイルとテクニック FAQ によると、 C では NULL は事実上 0 と同義であり、個人の好みの問題となっています。彼は、マクロを避けるために 0 を使用することを提案し、標準以前の NULL 定義が予期しない動作を引き起こす場合があることを強調しています。

C 11 では、null ポインター値を明示的に定義するために nullptr キーワードが導入されました。ただし、Stroustrup 氏は、ニュアンスにこだわるのではなく、コードの機能に焦点を当てることを推奨しています。

最終的に、NULL と 0 のどちらを選択するかは個人の好みの問題になります。どちらのアプローチにもそれぞれの長所があり、本質的にどちらが優れているというわけではありません。コーディング チームまたはプロジェクト内の一貫性を確保することは重要ですが、一方のオプションを他方のオプションよりも決定的に優先する客観的な理由はありません。

以上がC の NULL と 0 : Null ポインターにはどちらを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。