ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 апреля
942137 Топик полностью
fk0, легенда (24.08.2019 09:20, просмотров: 67) ответил Aleksey_75 на и что мешает в структуре передать их адреса ?
Ничего, но речь же про нормальное программирование, а не какие-то приседания с костылями? Таких переменных много, в готовом коде (C-библиотека), для начала. И у тебя в каждом объектном файле есть глобальные переменные, глобальные статические, статические в функциях. И при раздельной компиляции двух модулей можно либо: 1) научить линкер их размещать по разным адресам (заранее определить кому какой диапазон), 2) научиться линковаться в динамике (загружать ELF), 3) костыли типа предложенных тобой. Вариант 1 не очень хорош, ибо решает проблему только наполовину. Нужно ещё и символы из соседнего модуля видеть (можно руками сделать таблицы функций). Потом ещё проблема C-стартапа, где настраивается стек (и вообще тот факт, что этот стартап нужно вызвать у обоих модулей, ибо в нём происходит и инициализация переменных к слову). Потом в каждом модуле окажется своя C-библиотека (дублирование кода).
[ZX]