C - 将字符串转换为函数

时间:2016-08-30 10:58:27

标签: c scientific-computing

我想定义一个函数如下:

double f ( double x ){
    return what_certain_string_says_to_do_on_x;
}

这表现为直觉所暗示的:如果这样的字符串等于“sin(x)”,则结果函数将是通常的正弦,依此类推。 为简单起见,假设总是有一个名为“Certain_string”的变量,它始终包含明确定义的指令。

有人有什么建议吗?

我看到的唯一“解决方案”是编写一个简单的脚本,通过替换“return what_certain_string_says_to_do_on_x”行来重写 C源代码。使用字符串中包含的显式字符,然后重新编译。它有效,但我想获得更简单,更快捷的东西。

非常感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:0)

这个问题最明显的解决方案是创建一个哈希表,其键是受支持的函数名称集(例如" sin"),其值是指向匹配函数的指针。在任何使用之前,必须调用一个过程来填充此哈希表。在' f()'然后你会使用' certain_string'查找匹配的函数指针,然后在' x'上调用该函数。通过那个指针。