C++ 对C+使用NULL或nullptr+;空指针?

C++ 对C+使用NULL或nullptr+;空指针?,c++,null,clang,C++,Null,Clang,我正试图在虚拟测试文件上进行一些铿锵的AST转储。这是我正在使用的命令行: clang -Xclang -ast-dump -fsyntax-only test.cpp int*a=NULL可识别为my test.c,但不能识别为my test.cpp 我还尝试了int*a=nullptr但这并不适用 是否应更改命令行中的某些选项?C++11之前的C++允许NULL(如果包含cstdef头文件)或0本身 由于我的C语言背景,我倾向于选择NULL,我想清楚地看到NULL指针和零值之间的区别。然

我正试图在虚拟测试文件上进行一些铿锵的AST转储。这是我正在使用的命令行:

 clang -Xclang -ast-dump -fsyntax-only test.cpp
int*a=NULL可识别为my test.c,但不能识别为my test.cpp

我还尝试了
int*a=nullptr但这并不适用


是否应更改命令行中的某些选项?

C++11之前的C++允许
NULL
(如果包含
cstdef
头文件)或
0
本身

由于我的C语言背景,我倾向于选择
NULL
,我想清楚地看到NULL指针和零值之间的区别。然而,有些人更喜欢只使用
0


在C++11中引入
nullptr
解决了一些问题,包括在给定空指针时调用哪个重载函数(取整数的函数或取指针的函数)。

C++11之前的C++允许
null
(如果包含
cstddef
头文件)或
0
本身

由于我的C语言背景,我倾向于选择
NULL
,我想清楚地看到NULL指针和零值之间的区别。然而,有些人更喜欢只使用
0

C++11中引入了
nullptr
,解决了一些问题,包括在给定空指针(取整数的指针或取指针的指针)时调用哪个重载函数。

使用以下命令行: clang-std=c++11-Xclang-ast dump-fsyntax only test.cpp

现在您可以使用
nullptr

#包括
现在您可以使用
NULL

否则使用
0

使用以下命令行: clang-std=c++11-Xclang-ast dump-fsyntax only test.cpp

现在您可以使用
nullptr

#包括
现在您可以使用
NULL

否则使用
0

只需使用0即可

int *a = 0;
nullptr
仅在C++11中引入。将选项-std=c++11传递给编译器。您的clang版本支持C++11吗?关于空值,请参见仅使用0

int *a = 0;

nullptr
仅在C++11中引入。将选项-std=c++11传递给编译器。您的clang版本支持C++11吗?关于空值,请参见参考:
nullptr
是C++11以后的版本。您的编译器符合哪种标准?您必须使用
nullptr
并使用c++11兼容性进行编译,或者使用
NULL
#包含其中一个c头。或者您可以始终使用
0
。。。是在
中定义的,这是您的问题吗?语言支持
-std=c++11
?供参考:
nullptr
是C++11以后的版本。您的编译器符合哪种标准?您必须使用
nullptr
并使用c++11兼容性进行编译,或者使用
NULL
#包含其中一个c头。或者您可以始终使用
0
。。。在代码< >代码>中,你的问题是:语言支持<代码> -STD= C++ 11 ?从OSIS看来,使用CSTDDF时NULL总是“OK”的,使用0与我必须使用的MISRA C++规则冲突。所以我宁愿使用cstdef;)在使用CSTDDF时,NIS似乎总是“OK”?使用0与我必须使用的MISRA C++规则冲突。所以我宁愿使用cstdef;)使用0与我必须使用的MISRA C++规则冲突。但是命令行是正确的!谢谢你使用0与我必须使用的MISRA C++规则冲突。但是命令行是正确的!非常感谢。