我正在使用C ++ 11在Raspbian上开发用户空间应用程序。
ReSharper ++建议我在以下系统调用中使用nullptr
而不是NULL
:
auto ret = timerfd_settime(this->_timer_fd, 0, &timeout, NULL);
assert(0 == ret);
我认为我应该留在NULL
,因为这个库专门用于C语言的系统编程。
在这种情况下,最佳做法是什么?
答案 0 :(得分:2)
NULL
和nullptr
都可以正常使用。但是,由于这是C语言中的syspro,我会使用NULL
,因为它是我在该字段中经常(如果不是总是)看到的内容。
如果您查看系统调用的reference,则会看到提到NULL
的地方,而不是nullptr
,这是您应该期待的(如果不确定您&# 39;阅读以下答案)。
同时检查NULL vs nullptr。
答案 1 :(得分:2)
我会留在nullptr因为意图更明确。
对于任何类型,都会将nullptr隐式转换为指针,因此您绝对可以安全。
cppreference.com:
关键字nullptr表示指针文字。这是一个prvalue 输入std :: nullptr_t。存在从nullptr到。的隐式转换 任何指针类型的空指针值和指向成员类型的任何指针。