我正在C++11中的Raspbian上开发一个用户空间应用程序。ReSharper++建议我在以下系统调用中使用nullptr而不是NULL:
auto ret = timerfd_settime(this->_timer_fd, 0, &timeout, NULL);
assert(0 == ret);我认为我应该继续使用NULL,因为这个库专门用于C语言的系统编程。
在这种情况下,最佳做法是什么?
发布于 2015-09-05 22:49:30
我会和nullptr呆在一起,因为我的意图更清楚。
对于任何类型都有nullptr到指针的隐式转换,所以绝对是安全的。
cppreference.com:
关键字nullptr表示指针文字。它是一个std::nullptr_t类型的prvalue。存在从nullptr到空指针值的任何指针类型和任何指针到成员类型的隐式转换。
发布于 2015-09-05 20:32:15
NULL和nullptr都能正常工作。但是,由于这是C中的syspro,所以我将使用NULL,因为这是我在这个领域中经常看到的(如果不是总是的话)。
如果您检查系统调用的参考文献,您将看到在任何地方都提到了NULL,而不是nullptr,这是您应该期待的事情(如果没有确保您将阅读下面的答案)。
也检查一下NULL对nullptr。
https://stackoverflow.com/questions/32417330
复制相似问题