我在一些代码中发现指针的定义如下-

#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

把它用作空-->
对。

09-18 07:34