ホップ・ステップ・εミ(ο_ _)ο ドテッ

プログラミングの風景をちょいとぶつぶつ書きつづってみようというテスト

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  98  : 記事  1  : コメント  1221  : トラックバック  9

ニュース

ゆーち

Y.Uchiyama

 福岡県在住
 株式会社シーソフト
 代表取締役
 現役職人です(`^´)
 主にC++を使ってます
リアルマイミク募集中w
 (・∀・)Mixi
フォローよろしくw
 (・∀・)Twitter

記事カテゴリ

書庫

日記カテゴリ

ギャラリ

2008年8月22日 #

nullっての、混同するケース多いですよねぇ。
いまだにCのソースで、str[ len ] = NULL; なんて記述を見つけたりします
(CでのNULL は (void *)0 というポインタ値(メモリ上のアドレス)で、文字列の終端のために用意された定数ではないです)
※C++では、NULL は 0 という値になりましたからねぇ・・・指摘できなくなってしまったorz

データベースではフィールドとして用意されたデータ領域の値が未定義であるという意味での NULL が使われます。
C#には、同様に値が未定義であることを許可する null という型?値?が導入されているようです。
値としての NULL と 値が未定義である NULL とは、まったく異質のものなのに混同してしまうケースとかあるみたいだし
データベースフィールドのNULLとC#のnullを同一視してしまうとかもありそうです。(掲示板にその手の話題が出ているキガス)

NULLに反対ってな意見をどこぞで見たのですが、数値や文字列を格納するための領域で値が設定されていない「状態」を表現するのは必要なことだと思います。
ずいぶん昔は、99999が設定されていたら未定義、とか後で拡張する人に対する配慮のないプログラムが横行してましたが、そっちの方がもっと問題です。┐(´ー`)┌

でも未定義のNULLってのは、ソースプログラムの可読性を損なわせるような、やっかいな記述を強いられることが多いと感じますね。

そのへんをエレガントにできるワザがありそうな気がするんだけど・・・
気のせいなのかなぁ(謎

posted @ 21:06 | Feedback (7)