我有一个C++源文件和一个Python源文件.我希望C++源文件能够将Python源文件的内容用作大字符串文字.我可以这样做:

char* python_code = "
#include "script.py"
"

但这行不通,因为每行的末尾都需要\.我可以手动复制并粘贴Python代码的内容,并用引号和\n结尾的引号将每行括起来,但这很难看.即使Python源代码将有效地编译到我的C++应用程序中,我还是希望将其保存在一个单独的文件中,因为它更有条理,与编辑器的配合也更好(emacs不够聪明,无法识别C字符串是Python代码并切换到Python模式

请不要建议我使用PyRun_File,这是我首先试图避免的;)

推荐答案

C/C++预处理器以令牌为单位工作,字符串文字是single个令牌.因此,您不能像那样介入字符串文字的中间.

您可以将script.py预处理为类似于:

"some code\n"
"some more code that will be appended\n"

但是#包括这一点.或者,您可以使用xxd​ -i生成一个C静态数组,以供包含.

C++相关问答推荐

与unions 的未定义行为

如何判断宏参数是否为C语言中的整型文字

DPDK-DumpCap不捕获端口上的传入数据包

为什么在C中进行大量的位移位?

非正规化边缘毛刺

在我的代码中,我需要在哪里编写输出函数?

CC2538裸机项目编译但不起作用

tick.q中的Kdb+键控表语法

在for循环中指向数组开头之前

将变量或参数打包到 struct /联合中是否会带来意想不到的性能损失?

我在C程序的Flex/Bison中遇到语法错误

有没有一种方法可以用C创建保留限定符的函数?

Valgrind正在使用一个Fexecve电话报告不可能发生的事情

当读取可能会阻塞管道中的父进程时,为什么要等待子进程?

C 程序不显示任何输出,但它接受 CS50 Lab1 的输入问题

C 语言中 CORDIC 对数的问题

如何找出C中分配在堆上的数组的大小?

C 中从 Unix 纪元时间转换的损坏

当循环变量在溢出时未定义时,可以进行哪些优化?

运行以下 C 程序时出现分段错误