Андрей, похоже что-то не так спроектировано.
Чем плохо передавать всякие объекты куда-то?
Если эти объекты глобальные для системы, можно вынести их в отдельный пакет и обращаться из остальных пакетов к нему и этим переменным. Но глобальность, на самом деле, может оказаться узким местом при дальнейшем расширении.
Самое лучшее нарисовать простую схемку взаимодействия объектов системы и тогда станет понятно, что куда передавать, что можно сделать глобальным, а что оставить локальным для пакета.
Config это тип а в другом месте это переменная.
Не уверен что можно импортировать пакет main и потому твоя переменная из main не видима в либе.
Но ты можешь её туда передать в параметрах Init
Хедеры можно включать куда угодно. Главное помнить что include просто "вставляет" всё содержимое файла в это место.
Поэтому в них надо выносить только то что требуется для общения модуля с внешним миром.
И если то что в них описано требуется в другом хедере, то можно в него включить первый.
Например там описан нужный тип который используется в прототипе функции.
Условно если в хедере описана функции foo(FILE*) то надо в этот хедер включить stdio.h
d-stream, Очень дорого иметь команду разработчиков, где все знают бухучет чуть лучше среднего главбуха. К тому же предметным областям свойственно тоже развиваться, т.е. бедным программистам еще и это надо изучать постоянно.
Есть подозрение, что это невозможно. Точнее не так, любое автоматическое приведение будет кого-то не устраивать.
Самый простой способ который видится, это для всех кроме последнего итема округлять "математически", а его принять равным 100 - сумма (округленных n-1) .
А так как варианты можно например максимальный элемент брать за такой последний, или минимальный. Либо еще "справедливый" вариант, все близкие значения округлять до одного и того- же значения независимо от их позиции. Например {10.4, 79.2, 10.4} превратятся в {10,80,10}, а не в {10, 79, 11}. Но тогда сразу приходит контр вариант (33.33, 33.33, 33.33).
Simt11, получается надо считать оставшееся время. С этим кстати в lua есть проблемы. Можно посмотреть на os.clock и надеяться что в твоем интерпритаторе она возвращает доли секунд. Или применять магию. Например брать из сокетов https://stackoverflow.com/questions/463101/lua-cur...
Есть какой-нибудь простой способ чтобы при такой настройке работали разные комбинации Ctrl+Shift+<что-то еще> Например выделить слово Ctrl+Shift+<стрелка вправо> теперь не работает. Есть фишка с патчем и пересборкой x-server - но это до первого обновления...
Слишком общая задача.
Если структуры данных сложные и требуют выделения памяти небольшими фрагментами с частыми перевыделениями и освобождениями - тогда да сборка мусора может повлиять. Но на C++ это придется делать в ручную и эффективность сильно будет зависеть от реализации и этой "второстепенной" задачи.
Если подобного не требуется, то можно любой язык использовать.
Хреновый вариант, во первых надо не забыть про все переменные и если не дай бог что-то в каком-то цикле поменяется потом искать странную багу.
И второе с точки зрения общего подхода - не стоит менять индексы циклов просто так. Уж лучше goto написать.
Как вариант дополнительное условие для каждого цикла, или вынести в функцию и использовать return
Чем плохо передавать всякие объекты куда-то?
Если эти объекты глобальные для системы, можно вынести их в отдельный пакет и обращаться из остальных пакетов к нему и этим переменным. Но глобальность, на самом деле, может оказаться узким местом при дальнейшем расширении.
Самое лучшее нарисовать простую схемку взаимодействия объектов системы и тогда станет понятно, что куда передавать, что можно сделать глобальным, а что оставить локальным для пакета.