C++とreturn;同じですか?return NULL;
いいえ。
return戻り値を持たない関数、つまり の戻り値の型から「抜け出す」ために使用されますvoid。
return NULLは値を返します。値NULLが含まれる関数の戻り値の型は、と互換性がある必要がありますNULL。
C ++では、ポインターのコンテキストreturn NULL;と同じであることを理解しています。return 0;
並べ替え。NULLと同等ではないかもしれませんが0、少なくとも何かに変換されます。
明らかに整数の場合、これは当てはまりません。NULL は加算、減算などができないためです。
ポインタへの加算と減算を問題なく実行できます。ただし、NULLいずれにせよ整数型 (C++03 では 4.10/1 および 18.1/4) でなければならないため、意味がありません。またはNULLに展開されるマクロである可能性が非常に高いです。00UL
NULLただし、最新のコンパイラの中には、実際に自分が書いたものである場合に少なくとも警告するものもあります。
また、ポインタに NULL の代わりに 0 を使用することを推奨する人もいます。これは、移植性が向上するためです。これが同等性が発生する別の例であるかどうか、私は興味があります。
いいえ、私はこのアドバイスに同意しません。どこから来たのかはわかりますが、NULLの正確な定義は実装によって異なるため、 C++11 に切り替えたとき、および他に自己文書化されていない場合は、 を使用NULLすると置き換えがはるかに簡単になります。nullptr