Partager via


Erreur du compilateur C3018

'var1' : le test ou l’incrément de l’instruction 'for' OpenMP doivent utiliser la variable d’index 'var2'

Une boucle for dans une instruction OpenMP doit utiliser la même variable pour son test et l’incrémentation que celle qu’elle utilise pour ses index.

L’exemple suivant génère l’erreur 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;
   }
}