Да, текстовый вариант очень плох, это я понимаю. Пришел к нему, т.к. ооочень уж туго дается мне си после delphi... С точки зрения алгоритмизации - задача по зубам, причем исходники wuline сишные есть в интернете, библиотеку для своего дисплея переписал для вывода графики через буфер (благо RAM хватает) + реализация альфа канала, обновления нужного участка экрана... С периферией разобрался благодаря CubeMX. А вот синтаксис языка си ну вообще никак не лезет...
Да, я записываю действительно массив, только не векторов, а координат полилиний, где их нужно разорвать и начать рисовать новую полилинию - ставил символ "|". Прекрасно понимаю, что эта чушь будет и медленно работать и жрать много памяти. Поэтому и решил спросить совета в каком виде хранить массив типа uint16_t чисел, в которых по 4 бита будут записаны координаты отрезка (x1,y1,x2,y2) преобразованных по формуле ( X1 shl 12 ) or ( Y1 shl 8 ) or ( X2 shl 4 ) or Y2
Экономней вижу вариант писать в массив uint8_t пару координат, а разрыв полилинии - заранее определенная (невозможная или неиспользуемая) пара координат...
Ваш вариант возьму за основу, только вместо short int буду использовать uint8_t - всё таки на байт меньше )))
Благодарю, за помощь!!!
Добавлено after 41 minute 59 seconds:Это абзац... я не могу создать массив, структура которого содержит динамический массив...
Код: Выделить всё
typedef struct{
uint8_t dx;
uint8_t dy;
} vect_t;
typedef struct{
uint8_t cnt;
vect_t nodes[];
} symbol_t;
symbol_t VFont[255];
Компилятор, конечно же ругается: type containing an unknown-size array is not allowed