ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1204160 Топик полностью
Vit (29.04.2022 13:41, просмотров: 330) ответил Moлoдoй кoллeгa на Односвязный список инициализируется в цикле и всё с этим хорошо. Решил положить этот список во флеш ибо ОЗУ всего 2K. 40 элементов списка я устану заполнять ручками. Есть варианты "автоматизации" инициализации массива структур при обьявлении? Можно препроцессор как-то использовать?
Если выделить сегмент и разместить с его начала массив, то через использование макроса __LINE__ и enum, КМК, можно попробовать изобразить копипастом 

примерно такой говнокод

typedef struct node{
    struct node const * next;
    //. . . .
}node;
еnum lnbe {LNB = __LINE__+2, lnbe_second,};//здесь двойка из неразрывного говнокодового континуума
const node list[]={//__LINE__ - LNB == индекс
 {LIST_BASE + ((LIST_SIZE-1 -(__LINE__ - LNB))?(LIST_BASE):(__LINE__ - LNB + 1)), }, 
 {LIST_BASE + ((LIST_SIZE-1 -(__LINE__ - LNB))?(LIST_BASE):(__LINE__ - LNB + 1)), }, 
};

Добавляется по одному элементу в строке.

Для единственного элемента конструкция не сработает, но тут вроде как и не нужно:)

Количество элементов можно подсмотреть в редакторе по количеству строк:)