A.18 指示詞的巢狀結構
下列的範例for指示詞的巢狀結構 (區段 2.9 在頁面上 33) 是相容,因為內部和外部for指示詞繫結至不同的平行區域:
#pragma omp parallel default(shared)
{
#pragma omp for
for (i=0; i<n; i++)
{
#pragma omp parallel shared(i, n)
{
#pragma omp for
for (j=0; j<n; j++)
work(i, j);
}
}
}
以下是先前範例的變化也是相容的:
#pragma omp parallel default(shared)
{
#pragma omp for
for (i=0; i<n; i++)
work1(i, n);
}
void work1(int i, int n)
{
int j;
#pragma omp parallel default(shared)
{
#pragma omp for
for (j=0; j<n; j++)
work2(i, j);
}
return;
}