2013-10-26 6 views
2

Я читал OpenCL от Apple 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 * и i - size_t.

Почему float a = input[i] не используется здесь? Благодаря!

+0

Кажется, что это может быть. Возможно, макросы остались от чего-то, что требовало кастинга. – Dithermaster

ответ

0

В этом примере код кода был написан не с использованием макросов, как вы предлагаете. Почему используются макросы - это чья-то догадка: код повторно используется из другого места; основа для тестирования ядра на основе C; автор кода чувствовал, что он улучшил читаемость; и т. д. и т. д.

Смежные вопросы