将null定义为NULL的小写版本?C++

Cod*_*ggo 3 c++ null user-defined-types

这里的快速问题,我不是一个很大的粉丝,总是以大写字母输入NULL,我想知道我是否可以定义一个小写版本.

当我尝试在头文件中定义它时:

#define null NULL;
Run Code Online (Sandbox Code Playgroud)

它允许编译这一行,但如果我尝试在我的代码中的任何地方调用null,我会收到语法错误.

例如,如果我写:

if(root == null){ /* Code here */}
Run Code Online (Sandbox Code Playgroud)

Eclipse告诉我这是一个语法错误,如果我尝试构建我的项目,我会收到此错误:

null错误

的,我不会允许这样做还是我做一些不正确的特殊情况?

R S*_*ahu 10

如果您使用的是C++ 11编译器,请使用nullptr并且不要打扰#define.

如果必须使用#define,请;从行中删除.

#define null NULL
Run Code Online (Sandbox Code Playgroud)


kvo*_*iev 5

该行末尾的分号是错误的.正确的

#define null NULL
Run Code Online (Sandbox Code Playgroud)

  • 当#define null NULL时; 预处理器用if(root == NULL;)替换if(root == null)行,并得到语法错误. (3认同)