ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1002510 Топик полностью
fk0, легенда (08.05.2020 01:20, просмотров: 336) ответил RxTx на Если определеить задачу иначе, то "глобальная переменная" => read only access откуда угодно, каким угодно кодом/инструкциями. Но изменение/modify => это строго один код/инструкция (не другие инструкции). Зачем? "Сложность найти по файлам проекта где это делается". Отсюда - классическая задача инкапсуляции доступа. Для C решается так: Перейти от работы с переменной к accessor-методам get/set. Переменную саму по себе скрыть (инкапсулировать), убрав запись о ней из
В отдельном модуле (.c) определить переменную как, например, int x. В хидерах определить как extern const int x. Переменная будет читаема, но не записываема. Для изменения переменной в том же отдельном модуле, где определена переменная, сделать специальную функцию и разместить её декларацию в хидерах. Преимущество перед твоим методом: доступ на чтение более легковесный (чтение ячейки памяти, вместо вызова функции). Работает только в C, или нужно добавлять extern "C" 

для C++ (ибо манглинг и локальность const в C++)

[ZX]