簡單地說:爲什麼C++ 0X/C++ 11標準中的nullptr
關鍵字是小寫字母,而其密切伴侶NULL
是大寫字母?我確實意識到兩者遵循不同的標準; nullptr
是一個關鍵字,而NULL
是一個宏。但是由於它們將用於類似的情況,如果他們遵循相同的慣例,新用戶會不會更清楚?爲什麼C++ 11中的nullptr小寫?
(不,它是太多的麻煩要記住 - 我只是好奇的設計決定)
簡單地說:爲什麼C++ 0X/C++ 11標準中的nullptr
關鍵字是小寫字母,而其密切伴侶NULL
是大寫字母?我確實意識到兩者遵循不同的標準; nullptr
是一個關鍵字,而NULL
是一個宏。但是由於它們將用於類似的情況,如果他們遵循相同的慣例,新用戶會不會更清楚?爲什麼C++ 11中的nullptr小寫?
(不,它是太多的麻煩要記住 - 我只是好奇的設計決定)
小寫明顯符合C++的一般命名約定。使用全部大寫不會幫助完全幫助用戶。
而且我不認爲它實際上是所有有助於與誰通過在C NULL
長大了(或正在誰使用NULL
代替0
C++用戶的上限)的老用戶。
當然,在這種情況下,我沒有看到任何違背命名約定的理由。
NULL是一個宏,一個共同的約定是,宏是大寫,而nullptr
不一個宏,但是一個關鍵字,與其他所有關鍵字一樣小寫。
但是,由於它們將用於類似的情況,如果他們遵循相同的約定,新用戶會不會更清楚?
混亂的潛在來源將改變,別人會問,爲什麼一個關鍵字(假設NULLPTR
,作爲null
將打破語言向後兼容)
您已回答了您的問題。一個是關鍵字,另一個是宏。 – Mat 2011-12-31 13:50:26
我不知道,它需要比'nullptr'清楚多少? 'NULL_POINTER'? :) – jrok 2011-12-31 13:50:44
@jrok'POINTER_WHOSE_VALUE_IS_ZERO' – 2011-12-31 13:51:59