Compartir a través de


Ejemplo A.24 de la cláusula privada

La cláusula de private (sección 2.7.2.1 en la página 25) de una región paralela sólo tiene efecto para la extensión léxica de la región, no para la extensión dinámica region.Por consiguiente, en el ejemplo siguiente, los usos de la variable a dentro del bucle de for en f rutinaria hace referencia a una copia privada de a, mientras que el uso de g rutinaria hace referencia *A.*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
}