【问题标题】:#define pre processor directive value#define 预处理器指令值
【发布时间】:2020-04-23 18:57:41
【问题描述】:

有什么方法可以找出#define Pre 处理器指令的值。

例子:

#define CONST 1
#if CONST
add(a,b);
#endif

以下是我的问题。

  1. 在上面的代码中有一种方法可以找出内存中 CONST 的值。
  2. CONST 是否有存储它的地址。
  3. 我们能否通过查看 .map 文件并找出 CONST 的值来找出答案。

【问题讨论】:

  • 如果 CONST 的域必须是一个 int,那么你可以声明一个 int 变量并将 CONST 赋值给它。如果它偏离 int ,那么编译器会抱怨。如果域高度灵活,那么只要您使用 gcc,您就可以 stringify 并将其分配给 char * 变量(也许其他工具支持宏值的字符串化)。

标签: c c-preprocessor


【解决方案1】:

#defines 没有任何内存地址。

这是一个预处理指令。它是在编译和链接之前的预处理器阶段解决的。 因此,您不会在符号表中找到它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多