ラベル C言語 の投稿を表示しています。 すべての投稿を表示
ラベル C言語 の投稿を表示しています。 すべての投稿を表示

2020年3月5日木曜日

NULLは0ではありません

こんにちは。

ほとんどのプログラム言語に存在するNULLですが、
値が0なので0として使っているソースコードをたまに見かけます。

しかし、NULLは0ではありません。

C言語を知ってる方は分かると思いますが、NULLはメモリーのアドレス0番目を指します。

なので、値は0なのです。

しかし、メモリーのアドレス0番目は、不正処理にあたります。

つまり、本来、例外を意味しているのです。

経験の浅いプログラマーが、勘違いして使うのはいいとして、
何年もプログラマーとして働いてきた技術者が使っているとイラッとします。

随分前に関わった開発のリーダーにNULLを0として使っている人がいました。
そのチームのコードレビューに参加したことがあるのですが、
コードレビューの場で0をNULLに置き換えるように指示しているのを見て驚いた事がありました。

後でこっそり教えましたけど、受け入れてもらえませんでした。

ちなみに、NULLは「ヌル」と発音する人と、「ナル」と発音する人がいますが、
「ヌル」はドイツ語で、「ナル」は英語だそうです。

言語によっては、同じ意味でnilを使う事があります。
例えば、Rubyはmilを使っています。

NULLについて少しは理解してもらえたでしょうか。

では、今日はこの辺で。