teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

appendix

2020/06/12 05:58

投稿

yohhoy
yohhoy

スコア6191

answer CHANGED
@@ -19,4 +19,6 @@
19
19
  void (*p)(void) = NULL;
20
20
  ```
21
21
 
22
- マクロ`NULL`は「何らかの処理系定義の空ポインタ定数」に展開されますが、少なくともその処理系において「関数ポインタ型変数を合法的に空ポインタ(null pointer)で初期化できる値」であることは保証されます。
22
+ マクロ`NULL`は「何らかの処理系定義の空ポインタ定数」に展開されますが、少なくともその処理系において「関数ポインタ型変数を合法的に空ポインタ(null pointer)で初期化できる値」であることは保証されます。
23
+
24
+ おまけ:GNU Cコンパイラ(gcc)では、マクロ`NULL`をリテラル`0`でも式`((void*)0)`どちらでもない[処理系定義の空ポインタ定数`__null`](https://gcc.gnu.org/onlinedocs/libstdc++/manual/support.html#std.support.types.null)に展開します。