2013-10-26 69 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的內核測試框架;代碼作者感覺它提高了可讀性;等等等等。