关于NULL的声明(#define NULL 0, const int NULL = 0; ...)到底那个更好?为什么?
在很多书上看到讨论NULL声明的问题,有的说应该使用 #define NULL 0,有的说应该使用常量的整数0,有的则说使用常量整数更不好,有的则说不要使用0而应该使用类似0xFFFFFFFF这样的值,
但是可恶的是这些书也没有具体详细的阐述为什么要这样做,都是如《C++ 程序设计语言》里面说的一段话: "在 C 中流行的是用一个宏 NULL 来表示 0 指针。由于 C++ 收紧的类型检查规则,采用普通的 0 而不是一些人建议的 NULL 宏,带来的问题会更少一些。如果你感到必须定义 NULL,请采用:const int NULL = 0;"
我想知道什么叫 "C++ 收紧的类型检查规则",以及为什么要围绕NULL值展开讨论,最好能举例说明各种声明的有点以及缺点,谢谢!