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' 子句中的变量必须在封闭上下文中共享

我试着用谷歌搜索……所有的例子都是这样的。如果这很重要,我也会在 Visual Studios 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 回答