OpenMP私有变量赋值问题

degree_37 2012-03-07 02:47:20
int main()
{
int i, x = 100;
#pragma omp parallel for private(x)
for (i=0; i<8; i++)
{
x += i;
printf("x = %d\n", x);
}
printf("global x = %d\n", x);
return 1;
}

这个代码warning C4700: 使用了未初始化的局部变量“x”

请问这个x在哪赋值?
...全文
190 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
modyaj 2012-03-20
  • 打赏
  • 举报
回复
int main()
{
int i, x = 100;
#pragma omp parallel for firstprivate(x)
for (i=0; i<8; i++)
{
x += i;
printf("x = %d\n", x);
}
printf("global x = %d\n", x);
return 1;
}

应该用firstprivate把值赋值到并行区域

353

社区成员

发帖
与我相关
我的任务
社区描述
CUDA高性能计算讨论
社区管理员
  • CUDA高性能计算讨论社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧