在C语言中,我想创建一个名为TEST()
的宏,该宏采用有效的C算术表达式并打印并求值。例如,如果我给它TEST(5*2+3)
,它将打印到控制台5*2+3 = 13
。不幸的是,我不知道如何将表达式转换为字符串,也不知道如何获取给定的字符串并将其作为代码求值。 我该怎么做?
答案 0 :(得分:1)
您可以使用字符串化运算符将参数转换为字符串,然后扩展为Table
调用,以打印字符串和结果。我的代码假定该表达式始终为printf()
。
int
答案 1 :(得分:0)
对于问题的解析部分:
Shunting-yard algorithm是您所追求的。
(据我所知)这是将由字符串表示的数学表达式转换为postfix
版本的最常见的方式(操作符在操作数之后而不是在操作数之间),这要容易得多用代码解释。
祝你好运!