Представление структуры в памяти
- Войдите на сайт для отправки комментариев
Чт, 09/07/2020 - 23:49
Дано: структура данных различных типов и вообще.
Задача: представить вышеперечисленное в виде массива/просто разбить на куски по байту, чтобы запихнуть во флэш STM32.
Догадываюсь, что оно рядом, но туплю. Может, можно сделать union, но тогда надо точно посчитать в байтах размер структуры. Есть ещё варианты?
Нет, придется писать код, который раскладывает "и вообще" в повторяемую последовательность байтов. Волшебного универсального средства нет в природе.
Спасибо. Жопа )))
Структуры - это те же классы. По сути вам надо написать метод класса, который сохраняет(извлекает) экземпляр класса в/из флеша
Дано: структура данных различных типов и вообще.
Задача: представить вышеперечисленное в виде массива/просто разбить на куски по байту, чтобы запихнуть во флэш STM32.
Догадываюсь, что оно рядом, но туплю. Может, можно сделать union, но тогда надо точно посчитать в байтах размер структуры. Есть ещё варианты?
ничо не понял. Вот структура "данных различных типов".
Вот её размер
вот она же байтами, "в виде массива", "кусками по байту"
или я, какабычно, чота с похмелья не догоняю?
Дед. Ты всё правильно описал. Вот чего ТС не догоняет загадка. Проще уже ничего быть не может.
Вот чего ТС не догоняет загадка.
Ну, заслушаем, как появицца.
Нет, не правильно. Потому что будет работать только в ограниченном частном случае, и нет никаких пояснений. Фактически подложил грабли.
А ну-ка, метод деда в целом логичный, не очень безопасный но логичный. Обратно так собрать та ещё фигня буит....Так жи?
хорошо. Перед struct забыл
#pragma pack(push,1)
после
#pragma pack(pop)
надеюсь, так правильней?
А ну-ка, метод деда в целом логичный, не очень безопасный но логичный. Обратно так собрать та ещё фигня буит....Так жи?
собирать так же. с учетом сообщения выше. Иначе, STM по умолчанию выравнивать начнёт хрен знает как.
хорошо. Перед struct забыл
#pragma pack(push,1)
после
#pragma pack(pop)
надеюсь, так правильней?
Нет. Вообще не в тему. Положи String в структуру, например, и попробуй.
Нет. Вообще не в тему. Положи String в структуру, например, и попробуй.
Не, ну да, если структура хранит указатель хоть на чо, тогда естес-сно этот вариант не пойдёт.
Это будет работать только для не зависимых, непосредственных типов.
Всем спасибо!
Указатель это скалярный тип.
Согласен, с терминами я путаюсь. Проправил.
Нет, не только. И еще осталось понять, что кроме механики языка есть еще логика приложения.