首页 > 解决方案 > 将数据转换为代码

问题描述

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

标签: cevaluation

解决方案


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

#define TEST(EXP) printf("%s = %d\n", #EXP, (EXP))

推荐阅读