Я новичок, и я написал программу из 10000 строк, которая в основном использует глобальные и недействительные функции на С++.
В любом случае, у моей программы нет графического интерфейса, поэтому я делаю его с помощью Clutter. Таким образом, в беспорядке вы используете функцию обработки сигнала, чтобы связать нажатия кнопок, события движения и т. д.
Функция обработки сигналов может принимать только один параметр данных пользователя. Тем не менее, многие компоненты графического интерфейса, сотни должны быть доступны для различных функций. Поэтому я помещаю все свои объекты GUI в одну структуру и передаю ее из каждой функции обработки сигналов.
Итак, моя программа в том виде, в каком она есть сейчас (консольная программа), печатает нажатие на какую-то букву, чтобы что-то сделать. Если вы нажмете эту букву, запустите определенную функцию. Если я устраню использование global, мне нужно будет передать в качестве параметров некоторые из этих переменных.
Если я напрямую вставлю свой код в GUI, то функция обработчика сигнала запустит соответствующие функции, но сможет передать только один параметр пользовательских данных, который сейчас уже используется как структура с сотнями членов GUI.
Извините, если все это звучит безумно. Я просто пытаюсь переписать свой код, чтобы использовать лучшие практики, но с кодом длиной 10000 и непониманием некоторых вещей я чувствую себя довольно подавленным.
Я просто ищу совет о том, с чего начать и как решить эту проблему, которую я воспринимаю при подключении к графическому интерфейсу.
И на мой вопрос о структурах. Мне интересно знать, существует ли максимальное количество элементов, которые могут находиться внутри структуры. Если у вас есть массив внутри структуры, будет ли время доступа к этому массиву медленнее? Есть ли разница в том, как обрабатывается память для структуры.
Спасибо.