为什么在C ++ 11中nullptr是小写的?

时间:2011-12-31 13:47:34

标签: c++ c++11

简单地说:为什么C ++ 0X / C ++ 11标准中的nullptr关键字是小写的,而它的紧密伴侣NULL是大写的?我确实意识到这两者遵循不同的标准; nullptr是关键字,而NULL是宏。但是,由于它们将在类似的情况下使用,如果新用户遵循相同的约定,新的用户会不会更清楚?

(并不是很难记住 - 我只是对设计决定感到好奇。)

3 个答案:

答案 0 :(得分:12)

NULL是一个宏,常见的惯例是宏是大写的,而nullptr不是宏而是关键字,并且与所有其他关键字一样小。

  

但是因为它们会在类似的情况下使用,如果新用户遵循相同的惯例,那么它们是否更清楚呢?

混淆的潜在根源会发生变化,其他人会问为什么关键字是大写的(假设为NULLPTR,因为null会破坏语言的向后兼容性)

答案 1 :(得分:4)

小写绝对更适合C ++的一般命名约定。使用全部上限根本无法帮助用户。

我不相信它对那些在C中使用NULL而长大的用户实际上是有用的(或者是使用C ++用户的上限NULL代替0)。

当然,在这种情况下,我认为没有任何理由违反命名惯例。

答案 2 :(得分:3)

好的,我正在编辑原来的答案,因为我误解了这个问题。我将声称它是小写的,因为真假关键字是小写的。