在这个网站上,我发现了在预处理器中显示常量值的技巧,例如:
#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怎么办?我应该如何编写预处理器指令来执行此操作?
最佳答案
你不能,宏替换机制不涉及计算,但你可以看看GNU M4:
除了宏扩展之外,m4 还内置了一些函数,包括命名文件、运行 shell 命令、进行整数运算、以各种方式处理文本、执行递归等......
关于c - 在预处理器中显示之前评估常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17208531/