C++中为什么要尽量使用0而不是NULL,该如何解决
C++中为什么要尽量使用0而不是NULL今天看了 Bjarne Stroustrup 的百科,在忠告里面看到他说的一句话3. 尽量
C++中为什么要尽量使用0而不是NULL
今天看了 Bjarne Stroustrup 的百科,在忠告里面看到他说的一句话
3. 尽量使用0而不是NULL。
我在判断指针的时候习惯是写成NULL,记得好像是不同环境下NULL的值定义的不一样,写NULL比较有通用性。
e.g.
C/C++ codeif(p == NULL){ //...}
如果这里写成了
C/C++ codeif(p == 0) { //... }
那移植的时候是不是会存在问题,或者说,哪种写法更能符合ANSI C++的标准,因为我感觉遵循标准才是比较好的。
不知道我的理解对不对,还有不太清楚 Bjarne Stroustrup 的真正意思是什么?请各位指点:)
[解决办法]C++中有NULL? NULL不是Windows SDK里面定义的嘛?
不过确实开始用nullptr了。。。
[解决办法]一般都用NULL,而且推荐的写法是
if(NULL == p)
{
//...
}
[解决办法]呵呵 楼主 看书的时候分清楚书得主要内容讲什么 它的基本背景是什么 就不会有这个疑问了
C++ 语言中是没有NULL的
NULL是Windows SDK , MFC等一些开发包 或 基础类库 中定义的一个常用宏 当然这个NULL宏是比较统一普遍的 几乎所有的开发包 库 都采用这个 而且意思也比较一样 所以很多人没搞清楚这个
具体编码时 如果你是在调试或编写纯C++的代码(比如C++语言课本上那些习题) 那肯定如你提到的书中作者所说 用 0 当然很可能你写这类程序时使用的编译器本身就默认有类库 也是可以使用NULL 但是一定记住他不是C++语言本身所有的东西
如果你是在某些开发包或基础类库中 还是使用NULL最好 比如在MFC下编程 你要写成 0 就被大人笑掉大牙了
[解决办法]0 是任何平台都通用的
也就是说 if (0 == p) 是不会错的
而NULL只是一个宏, 用户可以重定义, 如果用到了一个库里面定义了#define NULL -1 那就傻眼了
当然每个公司, 每个库都有自己的代码规范, 你在这个公司规范中让你使用NULL, 下一个公司可能就让你使用0
[解决办法]