A.24 Exemplo da cláusula private
O private cláusula (seção 2.7.2.1 na página 25) de uma região paralela tem efeito somente para a extensão lexical da região, mas não para a extensão dinâmica da região. Portanto, no exemplo a seguir, os usos da variável um dentro a for loop na rotina f refere-se a uma cópia particular do um, enquanto um uso na rotina g refere-se para o global um.
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
}