Partager via


A.24 Exemple de la clause private

La clause d' private (section 2.7.2.1 à la page 25) d'une région parallèle est uniquement en vigueur pour l'étendue lexicale de la zone, pas pour l'étendue dynamique de la zone. Par conséquent, dans l'exemple qui suit, toutes les utilisations de la variable a dans la boucle d' for dans la routine f fait référence à une copie privée d'un, alors qu'une utilisation dans la routine g fait référence *à.*global .

int a;

void f(int n) 
{
    a = 0;

    #pragma omp parallel for private(a)
    for (int i=1; i<n; i++) 
    {
        a = i;
        g(i, n);
        d(a);     // Private copy of "a"
        ...
    }
    ...

void g(int k, int n) 
{
    h(k,a); // The global "a", not the private "a" in f
}