我在一些代码中发现指针的定义如下-
#define NULL ((char *)0)
我发现这些代码编译得很好。但我不明白这是怎么回事。有人能解释一下0是如何投射到
NULL
指针的吗?把它用作空的文件指针是否有效-
FILE *fp = NULL;
最佳答案
C库宏NULL是空指针常量的值。根据编译器供应商的不同,它可以定义为((void*)0)、0或0L。
根据编译器的不同,null的声明可以是
#define NULL ((char *)0)
或
#define NULL 0L
或
#define NULL 0
把它用作空-->
对。