在这个网站上,我发现了在预处理器中显示常量值的技巧,例如:
#define VALUE_TO_STRING(x) #x
#define VALUE(x) VALUE_TO_STRING(x)
#define VAR_NAME_VALUE(var) #var "=" VALUE(var)
#define A 5
#pragma display(VAR_NAME_VALUE(A))
生成输出A = 5
并且它们运作良好,但是当我需要评估类似的东西时:
#define A 5
#define B (A*5)
#pragma display(B)
它显示输出B = 5 * 5.
如果我想显示B = 25怎么办?我应该如何编写预处理程序指令来执行此操作?
答案 0 :(得分:1)
你不能,宏替换机制不涉及做计算,但是你可以看看GNU M4:
除了进行宏扩展外,m4还有内置函数,用于包含命名文件,运行shell命令,执行整数运算,以各种方式处理文本,执行递归等.... / p>