A.24 private 句の例
並行領域の private 句 (25 ページのセクション 2.7.2.1) は、その領域の構文範囲でのみ有効であり、動的範囲には影響しません。したがって、次の例では、ルーチン f 内の for ループ内の変数 a は、a のプライベート コピーを参照しますが、ルーチン g 内ではグローバルの a が参照されます。
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
}