1

我用 C 语言编写了一个简单的 CLI,它可以理解四个基本指令:两个数字的加法、减法和乘法,然后退出。

我可以add(4,5)在提示后输入类似的内容,并且效果很好。但我希望用户能够定义变量并在之后使用它们。我的意思是,用户输入myvar = myobj(param_1,param_2)然后mymethod(myvar)一切正常。

我怎样才能得到这个?

编辑:

最后,我使用了 Troy Hanson 用 C 语言编写的 uthash 库,您可以在http://uthash.sourceforge.net/ 找到

感谢您的所有回答。

4

1 回答 1

0

第一部分是解析(“你将如何识别输入中的名称?”),第二部分:“如何存储和管理变量?”。

关于解析。如果您的解析器非常简单,只需在应该识别整数的地方进行一些额外的检查,如果没有,请在变量存储中按名称查找值(阅读下文)。建议使用一些正则表达式将输入拆分为有意义的部分(“词素”,用编译器/解释器的说法)。

关于存储。您需要一个能够通过名称轻松快速地访问项目并支持添加和删除条目的结构。这可以通过映射或哈希表很好地处理(C 标准库中没有标准映射实现,C++ 中的<map>/<unordered_map>就足够了)。对于少量的变量,可以只使用一个数组或一个列表struct variable { const char *name; vardata_t var; }(尽管查找可能会越来越慢,您可以考虑使用二分查找来增强这一点)。

于 2012-12-08T21:42:39.760 回答