【问题标题】:What are 'user keywords' in the codeblocks IDE?代码块 IDE 中的“用户关键字”是什么?
【发布时间】:2018-08-12 02:40:51
【问题描述】:

我刚刚注意到codeblocks IDE 中的一些有趣的东西,通过编辑器设置> 语法突出显示,说“用户关键字”,我知道它们是保留关键字,例如 for, int、signed 等,但这些应该是什么?

我最好的猜测是它实际上意味着“符号常数”。谷歌和堆栈溢出似乎没有给我任何关于它们是什么的信息。但是我知道您不能真正创建自己的关键字,因为它们是 C/C++ 语言的一部分。

有什么想法吗?只是好奇。

【问题讨论】:

    标签: c++ c ide codeblocks


    【解决方案1】:

    在调用 Qt 信号时,用户关键字的示例可能是 emit。尽管 qt 信号在技术上是函数,但它们是元编译的,旨在改变其类范围之外的状态。这就是为什么许多开发者喜欢显式地装饰它们的原因。

    通常emit 评估宏扩展为空

    请参阅此问题以了解有关 emit 工作原理的说明:

    Using emit vs calling a signal as if it's a regular function in Qt

    通常编译器会有自己的关键字,这些关键字在标准中没有正式出现。例如,GCC (C++) 支持许多 C11 关键字,例如 __thread__restrict。您可能需要手动添加这些来获得语法高亮。

    【讨论】:

    • 我宁愿说 emit 被宏扩展(不是“评估”)到什么都没有
    【解决方案2】:

    你是对的,你不能在 C++ 中创建新的关键字。正如您所注意到的,此选项用于语法高亮。如果您想在代码编辑器中突出显示它们,您可以在那里输入任何单词。代码编辑器将突出显示您的文字,以便更容易在代码中识别它们。突出显示或换句话说着色是该设置的唯一目的。

    【讨论】:

      【解决方案3】:

      但是我知道您不能真正创建自己的关键字,因为它们是 C/C++ 语言的一部分

      您不能以编译器可以理解的方式创建自己的。您需要将 IDE 的功能与编译器的功能区分开来。 IDE 具有使用特殊颜色显示关键字的功能。这很容易理解。但是 CodeBlocks 并不依赖于您用来“找出”标记是关键字的编译器。它有自己的处理器。

      那么当您更新编译器并且它支持更新版本的语言时会发生什么?您的 IDE 无法神奇地效仿。它不支持那些开箱即用的新关键字。这就是为什么它允许您指定“用户关键字”。因此,您可能会看到突出显示的新关键字。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-18
        相关资源
        最近更新 更多