отвечал на это:
Возможно есть какие-то хитрые способы, но я сейчас сразу не придумаю.
На это Вам @ЕвгенийП может ответить, если Вы перестанете его игнорировать.
в общем суть чуть выше, надо запись типа :
spisok_frame sf[0x800] = {
{ 0, 0 },
{ 0, 0},
{ 0, 0 },
{ 0, "text1" },
{ 0, 0 },
...
сократить до вменяемого размера. Есть какие способы?
Можно, почему нельзя. Я бы это уже пару часов назад показал, если бы дождался ответов на свои вопросы. Там много зависит от ответов, потому, не получив их, не хочу без толку пальцы об клавиши бить.
МЛЯ!!!
Ответить на заданные Вам вопросы. Есть какие способы?
С пропусками? - с интересом почитаю
А то что можно инициировать не до конца, это понятно - судя по Вашим вопросам, вы про это
оставить только в коде { 0, “text1” }, и не писать все { 0, 0 },
@pepelxl
вы нарываетесь
Внимательно прочитать вопросы не судьба?
Уже нарвался, у меня пропало желание как-то ради него напрягаться и писать для него примеры.
С пропусками, конечно, нельзя, но если инициализируется константами, то можно выполнить инициализацию на этапе компиляции при помощи constexpr кода. Я бы показал ТС, но, видать, не судьба.
если я вас чем -то обидел, то извиняюсь. Иногда сильно туплю.
вы проигнорировали уточняющик вопрос

А поточнее. Некоторые - это какие? Они все будут собраны в начале или где попало разбросаны?
я просто думал, что несколько раз об этом сказал - будут разбросаны как попало.
По учебнику - инициализация массивов допускается только последовательно. Суть массива - выводить на печать текст если в структуре id !=0 && name !=0.
constexpr мне интересен, но я не изучал его принципы относительно C (не С++). И возможности компиляции по дефолту в CUBE-IDE

я не изучал его принципы относительно C (не С++). И возможности компиляции по дефолту в CUBE-IDE
Почему именно С?
CUBE-IDE для стм32, насколько мне известно, использует С++
по умолчанию CUBE MX собирает в Си. Переключить можно, но в данный момент уже большая часть написана так, а отлавливать блохи желания не много. И я сильно жалею, что не переключил сразу.

будут разбросаны как попало.
Есть что-то, что заставляет Вас делать именно так? Нельзя положить все строчки в начале массива?
Есть какой-то смысл, почему строчка ххххх должна лежать именно в ячейке 1234, а не в 2, например?
скорость. Обращение к ячейкам ID будет в прерывании, и перебирать каждый раз массив в поиске своего места не вариант.
Это не ответ.
Почему нельзя назначить строчкам, инициируемым при старте программы, номера в начале массива - а все остальное уже добавлять потом?
По-моему избавления от инициализации массива почти вручную весомый аргумент, чтобы пересмотреть порядок индексов.
Два массива, например: data и idx. В дату последовательно сложить, в idx как надо и указатели на элементы data нацелить.

скорость. Обращение к ячейкам ID будет в прерывании, и перебирать каждый раз массив в поиске своего места не вариант.
- в чистом Си, не ++, нет возможности раскидать значения по массиву на этапе компиляции.
- в С++ есть такой способ.
- В .h файле, если его создать автоматически, никаких проблем написать и пустые строчки тоже. Тогда будет работать в Си. Чем не решение?
- можно построить массив со строками на нужных тебе местах ПЕРЕД запуском основного цикла. На этапе исполнения, но ДО начала работы. Это, в случае Си, самое простое решение.

В .h файле, если его создать автоматически, никаких проблем написать и пустые строчки тоже. Тогда будет работать в Си. Чем не решение?
хорошая идея, только с моими текущими знаниями, это взрыв мозга. ни когда не соединял два кода и не знаю как это сделать.

можно построить массив со строками на нужных тебе местах ПЕРЕД запуском основного цикла.
вот этого хотелось избежать, скорость запуска stm мне надо минимизировать.