- C言語なら俺に聞け 138 [無断転載禁止]©2ch.net
188 :デフォルトの名無しさん (ワッチョイ ff42-W2u1)[]:2016/12/23(金) 04:39:13.55 ID:S57Ht5Rq0 - NULL ‐ 通信用語の基礎知識
NULLマクロは、stdio.hなどをincludeすると定義される。 NULLポインターは、実装上の制約からアドレスであり、その環境内において、決して他に使用されることのない番地を用いることになる。 したがって、その値は環境によって異なる。 Cでは、移植性に配慮し、これをNULLマクロによって定義した。 0番地 殆どのプロセッサー環境で、そのアドレスは0番地が使われる。 まれに異なる番地を用いるシステムもあるが、Cの規格上、その場合も0番地と可換でなければならない。 結果として、NULLポインターは0と書いておけば、Cコンパイラーが自動的に対応してくれることになっている。 定義Cでは、殆どの環境で次のように定義されている。 #define NULL ((void *)0) 但し、C++ではこの定義をそのまま使えない。 C++はvoid *から他のポインター型に暗黙的な変換をせず、エラーになるからである。 C++では数値の0をNULLポインターとして使うことになったため、C++では次のように定義されている可能性がある。 #define NULL 0 http://www.wdic.org/w/TECH/NULL
|