计算化学公社
标题:
关于Visual Studio 2019 C编译器的openmp的defalut(none)不生效的问题
[打印本页]
作者Author:
lyj714
时间:
2022-11-21 12:49
标题:
关于Visual Studio 2019 C编译器的openmp的defalut(none)不生效的问题
以前就注意到了这个小问题,我不清楚是不是我机子上的这个VS的问题还是其他原因,具体C/C++编译器的版本是:Microsoft (R) C/C++ Optimizing Compiler Version 19.29.30147 for x64比如下面的这一段小代码:
#include <stdio.h>
#include <stdlib.h>
#include <omp.h>
int main()
{
int i;
unsigned long long sum = 0;
int b = 10000;
#pragma omp parallel for default(none) reduction(+:sum)
for (i = 0; i < 5; i++)
{
sum += b;
}
printf("Sum=%lld\n", sum);
return 0;
}
复制代码
理论上用VS的cl编译器应该不会通过,因为用了default(none)但没有显示指出变量b的共享性,
但是实际上用cl编译器能够直接编译通过
,这就很纳闷了。
同样的程序,我用intel的icl编译器和Linux上的gcc编译器或者Windows上的cygwin等等都不能通过,因为b没有显式声明出来。
请问各位这方面的大佬有没有遇到过这种情况?
欢迎光临 计算化学公社 (http://bbs.keinsci.com/)
Powered by Discuz! X3.3