День добрый!
И у меня проблема с инициализацией

Вводные данные:
IAR XLINK 4.60K (4.60.11.0); IAR Assembler for MSP430 V4.10A/W32 (4.10.1.9); IAR C/C++ Compiler for MSP430 V4.10A/W32 [Evaluation] (4.10.1.1)
Описание шрифта
Код
typedef const byte cByte;
typedef struct fontDescriptor tFontDescriptor;
struct fontDescriptor{
cByte width; // width in pixels
cByte hight; // hight in pixels
cByte symbolStep; // in pixel beetween chars
cByte rowStep; // in pixel beetwen lines
cByte len; // symbol counts -1
cByte offset; // e.g. if only digits offset=0x30
};
typedef cByte tSymbol;
typedef struct font tFont;
struct font{
tFontDescriptor descriptor;
tSymbol symbol[];
};
Инициализация шрифта из десяти цифр
Код
//tFont font3x5_10={
cByte font3x5_10[]={
// descriptor
0x03,0x05,0x01,0x01,0x10,0x30,
// symbols
0x1f,0x11,0x1f,
0x12,0x1f,0x10,
0x1d,0x15,0x17,
0x15,0x15,0x1f,
0x07,0x04,0x1f,
0x17,0x15,0x1d,
0x1f,0x15,0x1d,
0x01,0x01,0x1f,
0x1f,0x15,0x1f,
0x17,0x15,0x1f,
};
Применение
Код
tFont *font;
font=&font3x5_10;
Вопрос. Если в процессе инициализации константу-шрифт описать как:
cByte font3x5_10[]={.....
то компилятор выдает предупреждение: "О не совместимости типов tFont и cByte". И все работатет.
А если описать как:
tFont font3x5_10={....
то компилятор принимает только первые шесть значений дескриптора, а на сами символы говорит:" Слишком много инициализирующих данных".
Видимо нельзя в одной структуре смешивать типы разной определенности длины. Как тогда можно реализовать один тип данных на шрифты разной длины? Прошу помощи?

Благодарю.