我正在用C编程并使用Source Insight。
我有一个包含很多常量的枚举类型(如100)。我有打印输出变量值的调试打印,但它们(当然)打印为整数。
我想要做的是点击枚举常量的名称,并查看其数值显示在某处。 (我已经在Visual Studio插件中看到了这一点,所以它必须是可能的。)
也就是说,假设我有
enum colors {
ORANGE, PURPLE, PINK
};
我想点击(或选择,或某事)PURPLE
并看到值1
可见的地方(理想情况下,符号窗口或上下文窗口,但我并不特别)。< / p>
在Source Insight中有一种简单的方法吗?有没有困难的方法,至少(比如写一个宏)?
答案 0 :(得分: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()
遍历子级