我已经接触过无数的编码指南,每个编码准则都给出了命名“事物”的指南。一个特定的C89命名规则触发了这个问题:明确禁止为变量使用'new‘名称,因为在C++中这是一个关键字。
这让我开始思考下一步的标准,C99已经有了很好的文档,但是C11相对来说是新的(2014年)。标准委员会还有几个扩展还在进行中。
因此,我想知道是否有人可以提供一个包含关键字及其起源的列表,以便制定一组命名规则,包括避免使用多个名称的原因。
尽管严格地说complex不是关键字,但最好包括类似的定义。C++信息也是非常感谢的。
发布于 2012-01-10 10:24:50
感谢所有的回答和评论,但简单地列出关键字并不完全是我的问题的意图。尤其是,
..。它们的起源..。
显然被忽视了。但是,在起草编码指南时,总是需要给出每个限制的理由。
这就是为什么我已经开始收集我自己的数据,并将其放入文档中。我仍在努力工作,特别是1995年AM1对C90标准的修正还没有完全包括在内,因为C++只使用了最新的C++11标准(部分),还有几份技术报告还需要收录,等等。但由于工作量的原因,我目前没有进行很多更新,所以我已经在我的网站上发布了一个供下载的草稿。
如果您感兴趣,请看这里:C (pdf)中的保留字。欢迎添加和更正,联系方式在我的网站上。
FWIW
发布于 2011-11-15 17:00:29
来自n3242 (即C++11)
2.12关键词
表4-关键词
alignas alignof asm auto bool
break case catch char char16_t
char32_t class const constexpr const_cast
continue decltype default delete double
do dynamic_cast else enum explicit
export extern false float for
friend goto if inline int
long mutable namespace new noexcept
nullptr operator private protected public
register reinterpret_cast return short signed
sizeof static static_assert static_cast struct
switch template this thread_local throw
true try typedef typeid typename
union unsigned using virtual void
volatile wchar_t while表5-备选表述
and and_eq bitand bitor compl
not not_eq or or_eq xor
xor_eq来自n1256 (C99)
A.1.2关键词
auto enum break extern case
float char for const goto
continue if default inline do
int double long else register
restrict return short signed sizeof
static struct switch typedef union
unsigned void volatile while _Bool
_Complex _Imaginary发布于 2011-11-15 16:59:53
格式化这很有趣。
https://stackoverflow.com/questions/8139659
复制相似问题