gpt4 book ai didi

c - OpenMP 奇怪的行为

转载 作者:太空狗 更新时间:2023-10-29 17:12:37 25 4
gpt4 key购买 nike

你好,我有以下代码,我用带有 -fopenmp 标志的 gcc (>4.2) 编译:

int main(void)
{
#pragma omp parallel for
int i;
for(i=0;i<4;i++) while(1);

return 0;
}

我在 OSX Lion(ver 1.7.3,llvm-gcc 4.2.1)和 CentOS 6.2 上得到了一个 SIGSEGV。我在这里做错了什么?谢谢

最佳答案

不确定这是否与编译器版本和配置相关,但是 while(true){} terminates

更准确地说,如果你写一个循环

  • 不调用库 I/O 函数,并且
  • 不访问或修改 volatile 对象,并且
  • 不执行同步操作 (1.10) 或原子操作(第 29 条)

并且没有终止,你有未定义的行为

这可能最终不适用于您的情况,但随着 C++11 变得更加成熟,请注意。

关于c - OpenMP 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9162995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com