2
 1 int result = 0;
 2 int b = 0;
 3 #pragma  omp for reduction(+:result) private(b)
 4 for(int i = 0; i < size; i++) {
 5    ifile >> b;
 6    if(b== 100)
 7      result++;
 8 }

なぜこのエラーが発生するのですか?

(3) エラー C3037: 'result': 'reduction' 句の変数は、囲んでいるコンテキストで共有する必要があります

私はグーグルで試してみました...すべての例は次のようになります。それが重要な場合は、ビジュアルスタジオ2012でもこれをコーディングしています。私はこのような質問をするのは嫌いですが、続けるのを妨げています。

修正: 並列を追加

#pragma omp parallel for private(buffer) reduction(+:result)

4

1 に答える 1

3

リダクション節から「並列」タグがありません:

#pragma  omp for reduction(+:result) private(b)

する必要があります

#pragma omp parallel for reduction(+:result) private(b)
于 2013-03-16T23:18:17.383 に答える