将嵌入文件作为char数组时的编译器问题

compiler problems with embedded files as char array

本文关键字:数组 编译器 问题 char 文件      更新时间:2023-10-16

我试图嵌入一个文件(OpenCL内核)作为字符数组主要问题是,它给我错误的任何行包含#

的例子:

char mykernel[] =
"stuff ---"
"#if(1)"
"    stuff"
"#else"
"    another stuff"
"#define ASD 15";
void* clh = clsopen(cp,mykernel,CLLD_NOW);

所有这些都给了我糟糕的错误(编译器错误,好像它看不到它们)

编辑:分号是一个错误,张贴问题。

错误如下:

#define ASD 15

在整个代码中使用此ASD,得到未声明的标识符

等错误

使用#if #else

#if中使用相同的功能,在#else中使用相同的名称

得到类似函数被用相同的名字声明了两次的错误…等等

edit2:

"#if(1)" //char number 26123: error: note: previous definition is here
"    inline functionA ...with output A"
"#else" //char number 28700: error: redefinition of functionA
"    inline functionA ...with output B"

所有以#开头的行也是没有任何前导空格的行。问题是,在自然的源文件中,每行将以n结尾,编译器将其视为空白。将n添加到每行的末尾