我正在寻找一种使用 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 有类似的东西吗?
最佳答案
不,用 C 不可能。甚至用预处理器也不可能。 =
运算符在 C 语言中始终执行完全相同的操作,并且无法自定义它。
如果你想做那样的事情,你将不得不选择一种不同的语言。例如,与 C++ 一样,它允许您覆盖 operator =
(对于 setter)和 operator int
(对于 getter)。
关于C18伪变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16142772/