C18 псевдопеременные
Я ищу способ сделать Jalv2-подобные псевдопеременные в C, используя компилятор C18. Псевдопеременная - это то, что действует как переменная, но на самом деле является функцией.
В Jalv2 можно создать псевдопеременную так:
function the_var'get() return byte is
-- some code
end function
procedure the_var'set(byte in value) is
-- some code
end procedure
Теперь можно читать и писать the_var
в то время как на самом деле эти функции выполняются:
the_var = 0x40 -- actually executes the_var'set(0x40)
doSomething(the_var) -- actually executes doSomething(the_var'get)
Есть ли что-то подобное для C?
1 ответ
Решение
Нет, это невозможно с C. Это даже невозможно с препроцессором. =
Оператор всегда делает одно и то же в C, и нет способа его настроить.
Если вы хотите делать такие вещи, вам придется выбрать другой язык. Как C++, например, который позволяет вам переопределить operator =
(для сеттера) и operator int
(для добытчика).