C++ 对C+使用NULL或nullptr+;空指针?
我正试图在虚拟测试文件上进行一些铿锵的AST转储。这是我正在使用的命令行: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指针和零值之间的区别。然
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++规则冲突。但是命令行是正确的!非常感谢。