【问题标题】:c++ version of python's exec() functionspython的exec()函数的c++版本
【发布时间】:2019-12-11 09:27:36
【问题描述】:

目标: 使用类似于 python 中的exec() 函数的某种函数执行一串 c(++) 代码。

python 中的示例:

exec('print("hello world")')
#out:
#hello world

问题:

python中是否有c++版本的exec?

【问题讨论】:

  • C 可以从代码运行系统命令...但是它也可以编译和运行 c 代码字符串...? C 不可解释...
  • 如果你想运行系统命令你可以使用system但是C/C++代码必须编译
  • 你为什么要做这样的事情?您需要解决的实际问题是什么?

标签: python c++ python-3.x python-exec


【解决方案1】:

但是,python 中有 c++ 版本的 exec 吗?

你想从一个字符串执行 C 语言语句!所以c是不可能的。

为什么

因为c是编译语言,所以程序先编译后执行。 它可能在python中作为其解释语言,意味着程序由 运行时的即时编译器。 希望这会有所帮助。

【讨论】:

    【解决方案2】:

    嗯,从技术上讲,你(也许)可以。但这并不是一个合理的努力,还有其他脚本语言可以集成到 C++ 中。例如卢亚。想想看,如果你有一个方法int excuteCode(std::string code)

    1. 将该字符串复制到一个模板中,该模板将其包装在某个函数中。以下是这样一个模板的想法:
    int userFunc()
    {
        %code%
    }
    
    1. 将模板写入文件
    2. 从该文件构建动态库(例如 Windows 上的 .dll)(通过 system 或特定于操作系统的方法调用编译器和链接器)
    3. 将动态库加载到正在运行的程序中(同样,特定于操作系统的方法)
    4. 加载需要的方法userFunc并执行。

    【讨论】:

    • 这太棒了
    【解决方案3】:
    #include <iostream>
    int main(void) {
        system("python -c \"print('hello world')\"");
        return 0;
    }
    

    对于系统命令...?

    【讨论】:

      猜你喜欢
      • 2022-01-13
      • 1970-01-01
      • 2018-02-16
      • 1970-01-01
      • 1970-01-01
      • 2010-10-04
      • 1970-01-01
      • 1970-01-01
      • 2012-08-31
      相关资源
      最近更新 更多