[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Вы явно перемудрили. Массив в C - это не тип данных, а область памяти, а тип данных - это то чем он забит.
То что вы определили
#define X_DEF((B_TYPE (*)[3])(0x5000080))
трактуется как указатель на 3-ий элемент массива типа B_TYPE. Это и объясняет всю вашу арифметику.
Нужно просто
#define X_DEF((B_TYPE*)(0x5000080));
а потом X_DEF[N].
Определить тип можно так
typedef B_TYPE* X;
Использование:
#define X_DEF ((X)0x5000000));
и X_DEF[5]=X_DEF[6] и т.д.
E-mail: info@telesys.ru