相当于C语言中的python execeval命令。

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

C语言中有没有exec() eval()函数?

比如说...

exec(printf(3 + 4))

eval(printf(3 + 4))

我在Python中做过这个... 但我不知道如何在C语言和C语言中做这个。

我知道这在Python中可能是有害的,因为它可以接受任何输入......所以为了克服这个问题,我来到了C语言,它更严格。

这只是一个实验,我很好奇的学习

请赐教

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

python c exec eval
2个回答
1
投票

我不知道如何在C语言和C语言中做到这一点... eval() 功能是典型的 口译语言. 解释器是一个 "飞行中的编译器",它可以解释(因此而得名)程序文本并立即执行程序指令。

基于解释器的语言需要运行一个能够读取程序文本并执行其指令的程序。

C语言是一种 基于编译器的语言 这意味着程序文本被 "脱机 "翻译成可执行格式,可以运行在 的程序来解释程序文本。

由于C语言没有运行这样的解释程序(所以程序没有 "板上钉钉 "的语言系统),所以它没有办法解释C语言的程序文本。eval 函数。为此,C语言中不存在这样的函数。


1
投票

Python是一个简化的Lisp,在Lisp中,有了 评价应用 范式。 在C语言中,这个范式只存在于编译器内部。 C语言的编译系统中使用了evalapply,也就是所谓的 软件的麦克斯韦方程. 但在用户层面,你不与evalapply交互,只有当你在C语言中写了一个编译器,你才能应付。

所以在C语言中,你需要自己实现这个功能,万一你开发的语言是图灵完备的(图灵机相当于eval+apply循环)。

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