当我尝试编译这个程序时,我在程序错误中得到了'#'

asd*_*sdf 3 c parallel-processing pragma openmp preprocessor-directive

当我尝试使用-fopenmpflag 编译时,我收到以下错误:

流浪#于节目中

以下是我的代码:

#include<omp.h> 
int main()

{        #pragma omp parallel 
     {
     int id=0;
     printf("hello(%d) ",id);
     printf("world(%d)\n",id);
     }
}
Run Code Online (Sandbox Code Playgroud)

Sou*_*osh 9

引用C11,章节§6.10/ p2,"预处理指令"(强调我的)

预处理指令由满足以下约束预处理标记的序列组成:所述序列中的第一令牌是#预处理令牌(在翻译阶段4的开始)是在源文件中的第一个字符(任选地在空白不包含换行符或在包含至少一个换行符的空格后面.序列中的最后一个标记是序列中第一个标记后面的第一个换行符.

所以,你不能拥有#任何其他令牌.在你的代码中

 int main()
 {        #pragma omp parallel
 ^        ^^^
Run Code Online (Sandbox Code Playgroud)

语法违反约束,因此错误.你必须把它放在自己的行中.