gpt4 book ai didi

c++ - 在预处理器指令中使用 openmp 时出错

转载 作者:太空宇宙 更新时间:2023-11-04 07:27:15 24 4
gpt4 key购买 nike

我正在尝试在预处理器指令中使用 OpenMP 代码,但在编译代码时出现错误。我正在尝试做如下的事情。

 #include<stdio.h>
#include<omp.h>
#define SUM(_X_)
sum=0.0 \
/*I want to put openmp
parallel for directive here \
i.e., #parallel for reduction(+:sum)\
*/ \
for (i = 0 ; i < 10 ; i++) \
sum += _X_[i]; \
int main()
{
int i=0,x[10];
float sum=0;
for(i=0;i<10;i++)
x[i]=i;
SUM(x);
}

有人知道如何实现吗?

最佳答案

在 C 中,从 C99 开始,您可以使用 _Pragma 运算符,它允许您将 pragma 放在宏中,例如

#define SUM(_X_)                         \
sum=0.0; \
_Pragma("parallel for reduction(+:sum)") \
for (i = 0 ; i < 10 ; i++) \
sum += _X_[i]

顺便说一句,要小心,永远不要在宏定义的末尾放置终止 ;

关于c++ - 在预处理器指令中使用 openmp 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17213327/

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