C18伪变量

标签 c pic mplab-c18

我正在寻找一种使用 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/

相关文章:

tcp - 在 PIC 微 Controller 中实现 MQTT

c - 使用 MPLAB X IDE C18 编译器编译我的 Microchip PIC18f4550 USB 项目时出现问题。编译器一直高亮显示 "syntax error"并且不会编译

c - SetWindowsHookEx 运行返回 NULL

检查 C 预处理器列表中是否存在条目

c - 在 Linux 上触发 C 应用程序的干净关闭

c - 简单的服务器/客户端 C 网络练习

c - 为什么 Timer1 不在 PIC18 上计数?

c - 链接步骤找不到符号(XC8 编译器)

C18 : called function is skipped