Общие вопросы по программированию МК на Си
#1
Есть вопрос за структуры. Первое - что такое структура в C? Второе - зачем нужны структуры?

Как я себе это все понимаю. Структура тот же массив, но с тем отличием от последнего, что в ней можно хранить данные любых типов. Скажем, если массив при инициализации был определен как int, в него можно записывать только данные которые определены как int и никак иначе. А в структуру можно затолкать int, char, bool и все остальное, а потом считывать их оттуда обращаясь к определенным полям структур. Верно? И, если я не ошибаюсь, массивы и структуры по сути своей - таблицы. Столбцы и строки (поля и элементы), в которых сохраняются (и откуда читаются) данные. Это если абстрагироваться от размещения данных в физической памяти. Правильно я рассуждаю?

Второе. Зачем? Для более удобной структуризации (упорядочивания) данных используемых в программе, структуры же. Не так ли?
#2
(30-09-2021, 12:50)Dunduk : Для более удобной структуризации (упорядочивания) данных используемых в программе, структуры же. Не так ли?
- для более удобного манипулирования данными. Описание структуры - это как принципиальная схема по которой будет собираться устройство 1

Код:
struct diod {
double I;
double U;
char marka[20];
}

теперь я могу создать несколько диодов D1, D2,...Dx и изменять, извлекать свойства однообразно для каждого из них.
Код:
D1->I = 1.5;
D2->I = 2.06;
Всё для удобства программиста 1  например передача кучи параметров в функцию с помощью структуры
Код:
print_param(D1);

намного приятнее чем
Код:
print_param(D1_I, D1_U, D1_marka);
особенно если параметров не 3, а тридцать.
В с++ пошли дальше и создали классы, в которых в отличие от структуры можно ещё хранить не только свойства, но и функции (методы).
#3
Ага, вроде доходит. Есть структура и у нее определенные свойства указанные в полях. Как бы для описания неких предметов. Предмет (структура) и его форма, цвет, назначение и т.д. в полях структуры. Создаешь или берешь какую-то структуру, и сразу получаешь объект с данными по нему, которыми можно оперировать определенным образом. Например, структура "Карандаш". Зеленый. А может быть и красный в другой структуре. Или в этой же структуре можно изменить цвет карандаша на красный при желании. Так? И вот еще - структура ведь это объект?
#4
(30-09-2021, 19:05)Dunduk : И вот еще - структура ведь это объект?
структура это скорее класс, но без инкапсуляции (все поля доступны для чтения и записи) и методов. А объект это уже конкретно представитель класса (структуры). Класс (структура) диоды 1, а КД522 это уже конкретный представитель.
#5
Надо это как-то осмыслить... Пожалуй, в codeblocks набью чего-нибудь с со структурами, чисто для лучшего понимания. Параллельно разбираясь с классами.