【问题标题】:Is there a way to reverse the order of a macro?有没有办法颠倒宏的顺序?
【发布时间】:2020-05-20 07:17:02
【问题描述】:

你好(如果我在标题中说错了,我提前道歉),

我正在编写一个程序,我创建了一个宏,但我想以相反的顺序使用它,例如:

#define MAGIC "\x34\x19\x23\x4C"

会变成这样:

"\x4C\x23\x19\x34"

有没有办法做到这一点,或者我需要写一个新的?

提前致谢。

【问题讨论】:

  • 什么宏?为什么是宏? “使用”到底是什么意思?
  • 我在这里看不到任何宏。 "\x34\x19\x23\x4C" 是字符串文字
  • "\x34\x19\x23\x4C"this 不是宏。它应该以#defibe 开头
  • 宏不使用任何内存,除非您实际使用它们。以相反的顺序使用宏而不是编写新宏的目的是什么?
  • 实际上想要达到什么目的?这看起来像XY Problem。也许你根本不应该为此使用宏。

标签: c macros


【解决方案1】:

预处理器负责宏(因此它们在您的程序执行之前被解释)。

如果您想在代码中同时使用"\x34\x19\x23\x4C""\x4C\x23\x19\x34",最好声明一个静态全局变量,然后通过简单的反向函数对其进行修改。或者,事实上,声明两个宏。

【讨论】:

    猜你喜欢
    • 2022-01-17
    • 1970-01-01
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    相关资源
    最近更新 更多