2013-10-26 53 views
2

我读苹果的OpenCL reduction example,并注意到有一个为访问数组元素的宏:OpenCL的铸造访问时阵列

#define LOAD_GLOBAL_F1(s, i) \ 
((__global const float*)(s))[(size_t)(i)] 

有人这样使用:

float a = LOAD_GLOBAL_F1(input, i); 

其中input是类型__global const float *isize_t

为什么float a = input[i]不在这里使用?谢谢!

+0

似乎可能。也许这些宏是从需要铸造的东西中遗留下来的。 – Dithermaster

回答

0

在这个例子中,代码已经被写入,不像你所建议的那样使用宏。为什么使用宏是任何人的猜测:从其他地方重用代码;一个基于C的内核测试框架;代码作者感觉它提高了可读性;等等等等。