编译器错误 C3014
OpenMP“directive”指令应后接 for 循环
除前面紧接 for
指令的 #pragma omp for
循环外,其他任何形式均为错。
下面的示例生成 C3014:
// C3014.cpp
// compile with: /openmp
int main()
{
int i = 0;
#pragma omp parallel
{
#pragma omp for
for (i = 0; i < 10; ++i) // OK
{
}
}
#pragma omp parallel for
for (i = 0; i < 10; ++i) // OK
{
}
#pragma omp parallel
{
#pragma omp for
{ // C3014
for (i = 0; i < 10; ++i)
{
}
}
}
#pragma omp parallel for
{ // C3014
for (i = 0; i < 10; ++i)
{
}
}
#pragma omp parallel
{
#pragma omp for
i *= 2; // C3014
for (i = 0; i < 10; ++i)
{
}
}
#pragma omp parallel for
i *= 2; // C3014
for (i = 0; i < 10; ++i)
{
}
}