编译器错误 C3018
“var1”: OpenMP“for”测试或递增必须使用索引变量“var2”
OpenMP 语句中的 for
循环必须为测试和递增使用与其索引相同的变量。
下面的示例生成 C3018:
// C3018.cpp
// compile with: /openmp
int main()
{
int i = 0, j = 5;
#pragma omp parallel
{
#pragma omp for
for (i = 0; j < 10; ++i) // C3018
// try the following line instead
// for (i = 0; i < 10; ++i)
j *= 2;
#pragma omp for
for (i = 0; i < 10; j = j + i) // C3018
// try the following line instead
// for (i = 0; i < 10; i = j + i)
j *= 2;
}
}