我正在尝试在虚拟测试文件上进行一些Clang AST转储。这是我正在使用的命令行:
clang -Xclang -ast-dump -fsyntax-only test.cpp
int * a = NULL;
在我的test.c中被识别,但不在我的test.cpp中。
我也试过了int * a = nullptr;
,但这也行不通。
我应该在命令行中更改某些选项吗?
答案 0 :(得分:4)
使用此命令行: clang -std = c ++ 11 -Xclang -ast-dump -fsyntax-only test.cpp
现在您可以使用nullptr
OR
#include <cstddef>
现在您可以使用NULL
否则使用0
答案 1 :(得分:2)
C ++ 11之前的C ++允许NULL
(如果您包含cstddef
头文件)或0
本身。
由于我的C背景,我倾向于选择NULL
,我想明白地看到空指针和零值之间的区别。但是,有些人更喜欢使用0
。
在C ++ 11中引入nullptr
解决了一些问题,包括在给定空指针(一个采用整数,或一个采用指针的指针)时调用的重载函数。
答案 2 :(得分:0)