我在哪里可以找到涵盖K&R1/2,C89-C1X及其来源的C(和/或C++)关键字列表?
Where can I find a list of C (and/or C++) keywords covering K&R1/2, C89-C1X and their origins?
我接触过大量的编码指南,每一个都给出了命名"事物"的指南。一个特定的C89命名规则引发了这个问题:明确禁止对变量使用'new'这个名字,因为在c++中这是一个关键字。
这让我开始思考下一个标准,C99有很好的文档,但C11相对较新(2014年)。而且标准委员会还有几个扩展正在进行中。
因此,我想知道是否有人可以提供一个关键字及其来源的列表,以便制定一套命名规则,包括避免使用几个名称的原因。
虽然严格来说complex
不是关键字,但最好包含类似的定义。还有c++方面的知识。
From 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
From 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
- 和
- and_eq
- alignas
- alignof
- asm 汽车>
- bitand
- bitor
- bool 休息
- <
- 案例/gh>
- 抓住
- 字符
- char16_t char32_t >类
- 惠
- const
- constexpr
- const_cast
- decltype 默认
- 删除
- 双
- dynamic_cast 其他
- enum >明确
- extern
- 假
- goto 如果>内联>int
- 可变 名称空间
- 新>
- noexcept 不
- not_eq
- nullptr
- 操作符
- 或
- or_eq 私人>
- 公共>
- reinterpret_cast
- 短gh>签署的
- 运算符 静态>
- static_assert
- static_cast
- struct
- 模板
- thread_local
- 真正
- typedef
- 类型id
- typename 工会
- 无符号>使用>虚拟>
- 空白 波动
- wchar_t
- ,
- xor
- xor_eq
- 汽车>
- _Bool 休息
- <
- 案例/gh>
- 字符
- _Complex
- const
- 默认
- 双 其他
- enum >extern
- goto 如果>
- _Imaginary 内联>int
- 短gh>签署的
- 运算符 静态>
- struct
- typedef 工会
- 无符号>
- 空白 波动
- ,
格式化这个很有趣
感谢所有的回答和评论,但是仅仅有一个关键字列表并不是我提问的目的。特别是,
…以及它们的起源……
显然被忽略了。但是在起草编码指南时,您总是需要给出每个限制的基本原理。
这就是为什么我开始收集我自己的数据,并把它放在一个文件。我还在努力,特别是1995年对C90标准的AM1修正案没有完全包括在内,对于c++来说,只使用了最新的c++ 11标准(部分),几个技术报告仍然需要包括在内,等等。但由于工作繁忙,我目前没有进行太多更新,所以我在我的网站上放了一个草案版本供下载。
如果你感兴趣,请看这里:C中的保留词(pdf)。随时欢迎补充和更正,联系方式在我的网站。
就其价值而言。
C11有新的关键词。其中一些是_Alignas, _Alignof。您可以在http://www.sdlczone.com/complete-list-of-c-keywords/
相关文章:
- Visual Studio 2015:Extern "C" 和 "export" 关键字
- C++中的"inline"关键字
- Pybind11:将元组列表从Python传递到C++
- 从链接列表c++中删除一个项目
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- C++如何通过用户输入删除列表元素
- 读取文件的最后一行并输入到链接列表时出错
- 如何确保C++函数在定义之前声明(如override关键字)
- 复制列表初始化的隐式转换的等级是多少
- LNK2038、MSVS2017 MAGMA的原因列表
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 没有为自己的结构调用列表推回方法
- 使用简单类型列表实现的指数编译时间.为什么
- 初始化列表中常量变量的"this"关键字
- 为什么 auto 关键字不能与指向函数的指针的初始化列表一起使用?
- 速推中的关键字列表运算符
- 模板参数列表中的额外 typename 关键字:是否有效
- 为什么在函数参数列表中重复typename关键字是必要的
- 我在哪里可以找到涵盖K&R1/2,C89-C1X及其来源的C(和/或C++)关键字列表?
- 使用带有默认关键字的初始化列表