20

我在 C++ 中定义了一个链表。我正在尝试为变量 head 设置一个 NULL 值(在 的构造函数中Movie_LinkedList),但我得到了:

movie.h(40):错误 C2065:'NULL':未声明的标识符

请注意,我不能包含任何库,除了iostream

任何帮助表示赞赏!

4

5 回答 5

25

如所写,NULL未在您的程序中定义。通常,这是在标准头文件中定义的——特别是<cstddef><stddef.h>. 由于您被限制为iostream,如果您没有NULL从该标题中隐式获取,您可以使用0or 在 C++11 中nullptr,这是一个关键字,不需要标题。(不建议NULL自己定义。有时可能会起作用,但在技术上是非法的。)

于 2013-03-21T14:11:05.277 回答
8

您应该包括<stddef.h>or <cstddef>

但是,您可以使用0nullptr也可以使用。

于 2013-03-21T14:11:15.423 回答
3

使用以下包括:

#include <stddef.h>
于 2013-03-21T14:11:34.050 回答
2

不需要图书馆!

在头文件的顶部,

做这个:

#ifndef NULL
#define NULL (0)
#endif
于 2013-03-21T14:11:16.480 回答
1

NULL实际上不是核心 C 或 C++ 语言的一部分;在 stddef.h 中定义为 0

由于您使用的是 C++,prefernullptr是一个关键字,并且已键入。(假设它可用。它是 C++11 的一部分,所以从技术上讲,并非所有编译器都支持它;实际上,你很难找到不支持它的编译器)

于 2013-03-21T14:12:10.803 回答