使用c和c语言的exec / eval命令

问题描述 投票:0回答:2

C中是否有exec()/ eval()函数?

例如..

exec(printf(3 + 4))

eval(printf(3 + 4))

我已经在python中完成了此操作...但是我不知道如何在C和C语言中执行此操作。

我知道这在python中可能是有害的,因为它可以接受任何输入..因此要克服我来到更严格的C语言的习惯

这只是我很想学习的实验

可以进行解释

我正在使用崇高的文字(以防万一...:]]

python c exec eval
2个回答
0
投票

eval()函数是基于解释器的语言的典型。解释器是“即时编译器”,它解释程序的名称(因此得名)并立即执行程序命令。

基于解释器的语言要求正在运行的程序可以读取程序文本并执行其指令。

C是基于编译器的语言,这意味着程序文本被“脱机”翻译为可执行格式,可以运行without程序来解释程序文本。

因为C没有运行这样的解释器程序(因此该程序没有“板上”语言系统),所以它无法在eval函数中解释程序文本。因此,C中不存在此类功能。


0
投票

Python是简化的Lisp,在Lisp中有eval / apply范例。在C语言中,此范例仅存在于编译器内部。 C的编译系统使用eval / apply,也称为Maxwell equations of software。但是在用户级别,只有编写/开发要处理的C编译器,您才可以与eval / apply交互。

因此,在C语言中,如果您开发某种语言,则需要自己实现。

© www.soinside.com 2019 - 2024. All rights reserved.