vscode C++:use of undeclared identifier ‘NULL’
记录一下自己的踩过的坑
在学习数据结构,双向链表
template <class T>
class Link {
public:
T data;
Link<T> *next;
Link<T> *prev;
Link(const T info,Link<T> *preValue = NULL,Link<T> *nextValue=NULL) {
data = info;
next = nextValue;
prev = preValue;
}
Link(Link<T> *preValue = NULL,Link<T> *nextValue=NULL) {
next = nextValue;
prev = preValue;
}
};
其中NULL直接报错了,就查了一下网上,看有的说需要先#define NULL 0
一开始也是这样定义的,但是很多时候0值是需要用到的。这里的意思肯定是想表示NULL为空指针的意思
后来看网上说#define NULL ((void*)0) ,不过看网上说C++里面好像会报错
最后自己写的时候因为直接调用了
#include <iostream>
就可以了!!!
另外看了一些教程说nullptr也可以,C++11之后引入nullptr防止NULL的二义性啦。推荐使用nullptr啦~
好吧,编程小白记录一下自己踩过的坑,之后逛论坛的时候看到了还能温习一下(大雾
mark一下这个大佬的链接,对NULL和nullptr的区别讲的很清楚啦https://blog.csdn.net/qq_18108083/article/details/84346655