private子句
- private子句:表示其所列出的变量对于线程组中的每个线程来说都是私有的。
- lastprivate 子句:不仅包含了private子句的功能,还要将循环的最后一次迭
代之后的变量值赋给原始值 - firstprivate子句:不仅包含了private子句的功能,而且当执行到该并行结构时,用对应变量的原始值初始化该变量
#include <stdio.h>
#include<stdlib.h>
#include<omp.h>
int main()
{
int val=8,i;
#pragma omp parallel for firstprivate(val) lastprivate(val)
for(i=0;i<2;i++)
{
printf("i=%d val=%d\n",i,val);
if(i==1) val=1e4;
printf("i=%d val=%d\n",i,val);
}
printf("val=%d\n",val);
return 0;
}
都无
first+last
first
last