0

我正在用 C 语言编程并使用 Source Insight。

我有一个包含很多常量(比如 100)的枚举类型。我有打印出变量值的调试打印,但它们(当然)打印为整数。

我想做的是单击枚举常量的名称,然后查看它的数值显示在某处。(我已经在 Visual Studio 插件中看到了这一点,所以它一定是可能的。)

也就是说,假设我有

enum colors {
    ORANGE, PURPLE, PINK
};

我想单击(或选择,或其他)PURPLE并在1可见的地方查看值(理想情况下,符号窗口或上下文窗口,但我并不特别)。

在 Source Insight 中是否有一种简单的方法可以做到这一点?至少有没有困难的方法(比如写一个宏)?

4

1 回答 1

1

我发现这样做的唯一方法是给枚举的每个成员一个特定的值 - 然后当它找到枚举常量时它会显示在上下文窗口中。例如:

enum colors {
    ORANGE = 0,
    PURPLE = 1,
    PINK = 2
};

这不是很好,但它的工作...

看起来可以编写一个宏,该宏会弹出一个带有该值的消息框,但我无法让它在 3.50.0064 中正常工作 - 似乎认为错误的枚举位于光标下。我的测试宏代码是

macro ShowEnum()
{
  symbolname = GetCurSymbol()
  symbol = GetSymbolLocation(symbolname)

  if (symbol == nil)
    Msg (symbolname # "not found")
  else
    Msg (symbolname # " found")
}

对我来说,这会从枚举列表中返回一个随机项作为“找到”项。如果返回正确的,我们可以使用 SymbolParent() 查找父级,然后使用 SymbolChildren() / SymListCount() 遍历子级

于 2010-03-15T11:05:42.577 回答