我正在阅读Apple的OpenCL reduction example,并注意到有一个用于访问数组元素的宏:
#define LOAD_GLOBAL_F1(s, i) \
((__global const float*)(s))[(size_t)(i)]
它的使用方式如下:
float a = LOAD_GLOBAL_F1(input, i);
input
类型为__global const float *
,i
为size_t
。
为什么float a = input[i]
没有在这里使用?谢谢!
答案 0 :(得分:0)
在此示例中,代码代码不是按照您的建议使用宏编写的。为什么使用宏是任何人的猜测:代码从其他地方重用;基于C的内核测试框架;代码作者感觉它提高了可读性;等等。