将数据转换为代码

时间:2018-07-26 01:25:48

标签: c evaluation

在C语言中,我想创建一个名为TEST()的宏,该宏采用有效的C算术表达式并打印并求值。例如,如果我给它TEST(5*2+3),它将打印到控制台5*2+3 = 13。不幸的是,我不知道如何将表达式转换为字符串,也不知道如何获取给定的字符串并将其作为代码求值。 我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以使用字符串化运算符将参数转换为字符串,然后扩展为Table调用,以打印字符串和结果。我的代码假定该表达式始终为printf()

int

答案 1 :(得分:0)

对于问题的解析部分:

Shunting-yard algorithm是您所追求的。

(据我所知)这是将由字符串表示的数学表达式转换为postfix版本的最常见的方式(操作符在操作数之后而不是在操作数之间),这要容易得多用代码解释。

祝你好运!