我正在寻找一种使用C18编译器在C中制作类似Jalv2的伪变量的方法。伪变量就像一个变量,但实际上是一个函数。
在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有类似的东西吗?
答案 0 :(得分:3)
不,用C不可能。预处理器甚至都不可能。 =
运算符在C中始终执行完全相同的操作,并且无法自定义它。
如果你想做那样的事情,你将不得不选择另一种语言。例如,与C ++一样,它允许您覆盖operator =
(对于setter)和operator int
(对于getter)。