3

我正在寻找一种使用 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有类似的东西吗?

4

1 回答 1

3

不,C 不可能。预处理器甚至不可能。运算符在 C中=总是做完全相同的事情,并且没有办法自定义它。

如果你想做这样的事情,你将不得不选择一种不同的语言。例如,像 C++ 一样,它允许您覆盖operator =(对于 setter)和operator int(对于 getter)。

于 2013-04-22T08:46:51.333 回答