Top.Mail.Ru
Ответы

Си (gcc): присвоение обратить в вызов функции.

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

Дополнен

или достаточно как-то дефайнами это обыграть...

По дате
По рейтингу
Аватар пользователя
Новичок
7лет

Надо реализовать виртуальные функции на Си?

Аватар пользователя
Просветленный
7лет

без внешнего препроцессора не представляю.
как вариант могу предложить переписать всё на "функциеподобные" дефайны, типа SET_DISP_VCC(Value), а их уже разворачивать в зависимости от окружения или в DISP_VCC = Value, или в реальные функции set_disp_vcc(Value)