макрос для моделирования доступа к двумерному массиву в C

OpenCL предлагает доступ только к одномерным массивам с использованием спецификаций C99. Однако моя проблема заключается в двух измерениях, и я использую двухмерные массивы на стороне хоста

Вместо того, чтобы делать мой код менее читабельным путем вычисления индексов, я хотел бы использовать макрос C для получения элемента A [i] [j] . К сожалению, я плохо разбираюсь в этом и имею мало опыта работы с C. Я думаю, что имею общее представление о том, как это делается, но если бы кто-то мог критиковать, это было бы признательно.

Это будет примерно так:

#define 2d_access(u, y, x) (u[y][x])

где u - матрица, y - строка, а x - столбец, и макрос вернет значение в u [y] [x]

Матрица размещается статически, поэтому макрос будет иметь компонент WIDTH.

#define 2d_access(u, y, x) (u[y * WIDTH] + x])
11
задан osgx 20 August 2011 в 00:53
поделиться