简单地说:为什么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