Я знаю, что повторяю то, что сказал в комментарии, но я не думаю, что кто-то понял.
Фраза «управляемое оборудование» сигнализирует мне, что программа является своего рода драйвером устройства, и весьма вероятно, что устройство ожидает, что его флаги будут в определенной области памяти. Причина использования общего хранилища заключается в том, что различные модули могут обращаться к этим областям и обновлять их напрямую. Перевод их в C extern should
работает, но вам действительно нужно получить документацию по интерфейсу устройства, чтобы убедиться, что вы делаете это правильно.
Потеря общего storgage, как предполагают некоторые авторы, просто не сработает при этих обстоятельствах. Наилучшим подходом, если у вас есть время и уверенность, было бы иметь статический класс, который обрабатывает все обновления в общем хранилище, и заменять все операции чтения и записи в общее хранилище на «get» s и «set» s на новый класс.