Си (gcc): присвоение обратить в вызов функции.
Есть некий код на Си под PIC микроконтроллер, для простоты отладки логики было решено написать минимальный HAL и отлаживать на компе. Управление GPIO пинами осуществляется через дефайны к
порт. бит, т. е. в коде выглядит это типа DISP_VCC = 1. Нужно: не изменяя код (для простоты обратного портирования) и не используся C++ компилятор (на c++ это решается элементарно перегрузкой =, но в коде полно констант с 0b нотацией, которые g++ не понимает) сделать абстракцию этих вызовов. Это реально вообще?
или достаточно как-то дефайнами это обыграть...
Надо реализовать виртуальные функции на Си?
без внешнего препроцессора не представляю.
как вариант могу предложить переписать всё на "функциеподобные" дефайны, типа SET_DISP_VCC(Value), а их уже разворачивать в зависимости от окружения или в DISP_VCC = Value, или в реальные функции set_disp_vcc(Value)