【初心者歓迎】C/C++室 Ver.40【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0205デフォルトの名無しさん
2007/07/22(日) 14:19:42だというのに C で NULL を ((void*)0) と定義することが許されていたのは、
整数型へそのまま代入できてしまわないようにするためだ。
まあ警告止まりかもしれないが、ないよりゃマシだ。
何で C++ でその定義が許されなくなったかというと、
C では void ポインタから他のポインタへの暗黙のキャストが許されていたけど、
C++ ではそれを禁止するようになったからだ。
いちいち明示的なキャストが必要になるのでは困るので、
NULL は 0 と定義されるようになった。
そして、C でも C++ でも NULL が推奨されないなんて話は聞いたことがない。
ポインタを扱っているという目印になるわけで、プログラムを読みやすくする効果がある。
どんどん使えばいい。
■ このスレッドは過去ログ倉庫に格納されています