<分区>
我尝试在 C 中使用 OpenMP,但发现 !=
存在一些问题运算符和 parallel for
.
对于下一个代码:
#include <stdio.h>
int main ()
{
int array[] = {1,2,3,4,5, 6, 7};
int *p;
int *stop = array + 7;
#pragma omp parallel for
for (p = array; p != stop; p++)
printf("a: %d\n", *p);
return 0;
}
我收到这个错误:
omp.c:10:18: error: invalid controlling predicate
for (p = array; p != stop; p++)
^
但是当我替换 !=
与 <
,它编译并且工作得很好。
还有其他选择吗?我想将代码与“停止”指针并联,并且必须使用 !=
运营商。
编译命令:gcc -o omp.o -fopenmp example.c
谢谢!