如果我想使用pass by values概念,该怎么办?例如:
void sum(int &u, int &v)
{ return u+v; }
__kernel void testing(__global int *a, __global int *b, __global int *c)
{ int i = get_global_id(0);
int u = max(a,b);
int v = min(b,c);
int x = sum(u,v);
}
现在我的错误是'&'符号。我无法使用传递参考概念传递参数。该怎么办?
答案 0 :(得分:6)
C不支持通过引用传递变量,Opencl内核作为C99工作。您需要使用直接指针(这是一个按值传递)。
int sum(int *u, int *v)
{ return (*u)+(*v); }