【问题标题】:Is it possible to define keywords in C是否可以在C中定义关键字
【发布时间】:2020-11-17 09:06:00
【问题描述】:

我目前正在查看 HarmonyOS 源代码,我可以解决一个问题。在图像中,我知道该函数不返回任何内容,但 LITE_OS_SEC_TEXT 部分是什么?我以前没见过这个关键字,或者它甚至是像 STATIC 或 typedef 这样的关键字。如果是这样,您如何在 C 中定义关键字?

【问题讨论】:

  • LITE_OS_SEC_TEXT 很可能是在头文件中定义的。你可以搜索它,看看它会扩展成什么。
  • 发布文本。不是图片。
  • los_builddef.h: __attribute__((section(".sram.text")))

标签: c syntax operating-system clang osdev


【解决方案1】:

如何在 C 中定义关键字?

你没有。这是不可能的。

您可以做的是使用宏。它们基本上只是高级文本替换。预处理器在编译器之前运行。也就是说,原则上。在现代编译器上,它们同时运行,但行为是相同的。

如果要在预处理器后查看源代码,可以使用-E参数给编译器。

这是一个如何使 C 代码更像 Pascal 的示例。不要这样做!只是为了好玩!

#include <stdio.h>

#define Begin {
#define End ;}
#define Writeln(X) puts(X)

int main(void)
Begin
    Writeln("Hello, World!");
    Writeln("Hello again")
End

【讨论】:

    【解决方案2】:

    可能是一个宏。您应该在包含的头文件中查找它的定义。 You can read about macros here.

    【讨论】:

      猜你喜欢
      • 2019-01-30
      • 2011-11-07
      • 2012-02-24
      • 1970-01-01
      • 2011-07-15
      • 2022-01-10
      • 2022-01-05
      • 2021-11-16
      • 1970-01-01
      相关资源
      最近更新 更多