Partilhar via


Erro do compilador C3038

'var' : a variável na cláusula 'privada' não pode ser uma variável de redução no contexto envolvente

Observações

As variáveis que aparecem na cláusula de redução de uma diretiva paralela não podem ser especificadas em uma cláusula privada sobre uma diretiva de compartilhamento de trabalho que se vincula à construção paralela.

Example

O exemplo a seguir gera C3038:

// C3038.cpp
// compile with: /openmp /c
int g_i, g_i2;

int main() {
   int i;

   #pragma omp parallel reduction(+: g_i)
   {
      #pragma omp for private(g_i)   // C3038
      // try the following line instead
      // #pragma omp for private(g_i2)
      for (i = 0; i < 10; ++i)
         g_i += i;
   }
}