Переход между структурами
- Войдите на сайт для отправки комментариев
Добрый день!
Есть у меня задача хранить схожие данные о нескольких условных "объектах", и выводить на экран. По кнопкам право/лево, соответсвенно, переходить к предыдущему/следующему объекту.
Сначала всё делал через двумерные массивы. Например
//Это не копипаст кода, а пример int object = 10; //Кол-во объектов char text[object][20] = {}; //Названия char time[object][5] = {}; //какое-то время // и тд void loop{ int select = 0; if (left) select--; //кнопка лево if (right) select++; //кнопка право Serial.print(text[select]); //Напечатать название Serial.print(time[select]); //Напечатать время }
Но в какой-то момент таких характеристик стало много, да и появилась потребность "выключать" некоторые объекты - то есть хранить флаг, и если он снят на 2-ом объекте, то после 1-го переходить сразу к 3-ему и тд.
Появилась идея использовать typedef struct, например
typedef struct { char text[20]; //Названия char time[5]; //какое-то время // и тд boolean flag; }Strobject; Strobject object1 = {...}; //1-й объект Strobject object2 = {...}; //2-й объект // и тд void loop{ int select = 0; if (left) select--; //кнопка лево if (right) select++; //кнопка право // Serial.print И вот тут проблема }
Но как вывести информацию с нужного мне объекта (и переходить между ними), я что-то никак не пойму)
В принципе, кол-во самих объектов заранее известно. Можно дать им одинаковые название с разницей в цифре на конце.
Помогите, пожалуйста, новичку. Такое ощущение, что прям какого-то простого шага не хватает:)
sadman41, огромное спасибо, как-то я не догадался их завернуть в массив)