簡體   English   中英

我可以將nullptr用作Linux系統調用參數嗎?

[英]Can I use nullptr as a Linux system call parameter?

我正在C ++ 11中的Raspbian上開發用戶空間應用程序。 ReSharper ++建議我在以下系統調用中使用nullptr而不是NULL

auto ret = timerfd_settime(this->_timer_fd, 0, &timeout, NULL);
assert(0 == ret);

我認為我應該保留NULL因為該庫專用於C語言中的系統編程。

在這種情況下,最佳做法是什么?

NULLnullptr都可以正常工作。 但是,由於這是C語言中的syspro,因此我將使用NULL ,因為這是我在該字段中經常看到的(如果不是總是這樣)。

如果檢查系統調用的引用 ,您會看到到處都提到NULL ,而不是nullptr ,這是您應該期望的(如果不能確保您將閱讀以下答案)。

同時檢查NULL vs nullptr

我會留在nullptr上,因為意圖更加明確。

任何類型都有nullptr到指針的隱式轉換,因此絕對安全。

cppreference.com:

關鍵字nullptr表示指針文字。 它是std :: nullptr_t類型的prvalue。 存在從nullptr到任何指針類型以及指向成員類型的任何指針的null指針值的隱式轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM