В зависимости от того, что делают ваши переменные, глобальная область может быть лучшей областью. (Думайте, что флаги сигнализируют о том, что прерывание достигнуто и должно обрабатываться в удобное время в середине цикла вычислений.)
Небольшие служебные программы часто чувствуют себя чище, используя глобальные переменные (я имею в виду, в частности, небольшие парсеры языка); но это усложняет интеграцию небольших утилит в более крупные программы в будущем. Всегда есть компромиссы.
Но велики шансы, что "правильная" организация данных не будет такой громоздкой. Если вы разместите здесь код, кто-то может предложить более чистый макет, но реальные проблемы возникают, когда код выходит за рамки простых для понимания небольших примеров.
У меня МНОГО любимых книг по стилю программирования, но я думаю, что лучшее, что я знаю для решения этой ситуации, это Элементы стиля программирования , написанные Керниганом и Плаугером. Он довольно старый, и его трудно найти, но короткий, сладкий, и его стоит найти где-нибудь используемым.
Это не так коротко, не так приятно, но все же стоит найти Code Complete, 2nd edition . Это намного более подробно, предоставляет гораздо больше кода и предоставляет гораздо больше разнообразия, участвующих в разработке программного обеспечения. Это отлично, но может быть более пугающим.
Нет ничего лучше, чем учить магистров: код в Расширенное программирование в среде Unix, 2-е издание феноменален и стоит каждого часа обучения.
И, конечно, всегда есть опыт, но на это нужно время. Изучение уроков на собственных ошибках, как правило, держится гораздо сильнее, чем извлечение уроков из ошибок других людей. Так что продолжайте. :)