【初心者歓迎】C/C++室 Ver.40【環境依存OK】
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
200:デフォルトの名無しさん 07/07/22 14:06:16 g++ なら -1 になる。 201:デフォルトの名無しさん 07/07/22 14:06:27 >>189 NULLは、C言語では #define NULL (void *)0 と定義されていた。(今のCは定義を見たことがないから分からない) つまり、このC言語処理系では0はint型。 int *a; a = 0; /* コンパイルエラーまたはウォーニング */ a = NULL; /* OK */ 一方、C++では、0は特別な値に昇格した。 C++では、0はint型と(void *)型の両方の性質を持った。 つまり #define NULL 0 と定義されているが、これはかつて、C++がCの上位互換性的要素が高かったため このように定義してないと移植時に不便であったという意味合いが強い。 int *a; a = 0; // OK(推奨) a = NULL; // OK(互換性のため。推奨されず) C++がなぜそうなったかは私には分からないが、 「ifならカッコの中が0であればif文は実行されない。それ以外は実行される」 という定義のように、C++の構造化の文法に不都合が無かった(むしろ定義上都合がよい)ことや (void *)0 が実用的に不便だったからかもしれない。 その辺はもっと詳しい人に
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5006日前に更新/239 KB
担当:undef