C++ 什么是';用户关键字';在代码块IDE中?
我刚刚注意到,C++ 什么是';用户关键字';在代码块IDE中?,c++,c,ide,codeblocks,C++,C,Ide,Codeblocks,我刚刚注意到,codeblocksIDE中有一些有趣的东西,通过编辑器设置>语法突出显示,说“用户关键字”,我知道它们是保留关键字,如for、int、signed等,但它们应该是什么 我最好的猜测是,它实际上意味着“符号常量”。Google和Stack overflow似乎没有给我任何关于它们是什么的信息。然而,我知道你不能真正创建自己的关键字,因为它们是C/C++语言的一部分 有什么想法吗?只是好奇 但是我知道你不能真正创建自己的关键字,因为它们是C/C++语言的一部分 您不能以编译器能够理解
codeblocks
IDE中有一些有趣的东西,通过编辑器设置>语法突出显示,说“用户关键字”,我知道它们是保留关键字,如for、int、signed等,但它们应该是什么
我最好的猜测是,它实际上意味着“符号常量”。Google和Stack overflow似乎没有给我任何关于它们是什么的信息。然而,我知道你不能真正创建自己的关键字,因为它们是C/C++
语言的一部分
有什么想法吗?只是好奇
但是我知道你不能真正创建自己的关键字,因为它们是C/C++语言的一部分
您不能以编译器能够理解的方式创建自己的。您需要将IDE的功能与编译器的功能分开。IDE有一个显示具有特殊颜色的关键字的工具。这很容易理解。但是代码块并不依赖于您用来“弄清楚”令牌是关键字的编译器。为此,它有自己的处理器
那么,当您更新编译器并且它支持更新版本的语言时会发生什么呢?您的IDE无法神奇地跟随。它不支持那些现成的新关键字。这就是为什么它允许您指定“用户关键字”。所以你可以看到新的关键词突出。
你是对的,你不能在C++中创建新的关键词。正如您所注意到的,此选项用于语法高亮显示。如果要在代码编辑器中突出显示单词,可以在其中输入任何单词。代码编辑器将突出显示您的单词,以便于在代码中识别它们。突出显示或换句话说,着色是该设置的唯一目的。
调用Qt信号时,用户关键字的示例可能是emit
。虽然qt信号在技术上是函数,但它们是元编译的,设计用于在类范围外改变状态。这就是为什么许多开发人员喜欢显式地装饰它们
通常,emit
对宏进行求值,然后将宏扩展为零
有关发射工作原理的说明,请参见此问题:
通常,编译器会有自己的关键字,而这些关键字并没有正式列入标准。例如,GCC(C++)支持许多C11关键字,如
\uuuuThread
或\uuuuuRestrict
。您可能需要手动添加这些以获得语法突出显示。我更愿意说,emit
是宏扩展的(不是“评估的”)为零