例如:
#include <stdlib.h>
#define A 20
#define B 22
#define C (A+B)
int main()
{
srand(time(0));
int i = (rand()&1) + C;
return i;
}
在 gdb 中,
(gdb) print C
No symbol "C" in current context.
我怎么知道C
是什么?可以gdb
告诉我吗?(我添加了rand()
所以我们不能轻易推断它是什么)
预处理器将 C 替换为(20+22)
. 这个值在 debuginfo 中是否可以以某种方式打印?
在宏可能非常复杂的实际示例中,我不想浪费时间做预处理器的工作。