2012-01-09 3 views

答えて

6

__nullの実装は、G ++内部のものです。あなたはそれをヘッダファイルなどで見つけることはできません。ロジックhereの説明がありますが、基本的な考え方は、NULLがポインタとして最初に見えることを確認する最も簡単な方法です。

基本的に、内部はreinterpret_cast<void *>(0)のようにあなたがめったに期待していないことをします。

+0

そのタイプを検出する方法はありますか? – wenlujon

+1

そのタイプは文脈によって「魔法」です。それがG ++を内部として実装しなければならなかった理由です。通常の型は、正確に正しいセマンティクスを提供しません。おおまかには「ボイド*」のように機能しますが、正確には機能しません。 –

関連する問題