anewbies
2015-12-07 06:34
采纳率: 25%
浏览 5.0k

(纯C语言)如何监视某个变量的值

程序中有个变量,希望当它的值变化时进行某种其他的操作,重点是监控这种变化,程序中不能用延时函数去循环查询该值是否发生变化,纯C语言中,还有其他方法吗?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

9条回答 默认 最新

  • John_ToString 2015-12-07 06:46

    可以用一个静态变量保存他的值,判断就可以了...

    评论
    解决 无用
    打赏 举报
  • ysuwood 2015-12-07 06:46
    评论
    解决 无用
    打赏 举报
  • ysuwood 2015-12-07 06:52
    评论
    解决 无用
    打赏 举报
  • 云霏阳 2015-12-07 08:06

    你想要的机制c语言无法直接提供,给2点建议:
    1.如果是调试,可以用gdb来实现你想要的效果;
    2.如果是正式实现,可以考虑将对该变量的操作封装成一个函数,然后在该函数中实现你想要的功能。

    评论
    解决 无用
    打赏 举报
  • 云霏阳 2015-12-08 09:26

    每当该函数得到调用的时候,就判断一下新值和原来的值是否相等,如果不相等,就可以在该函数中执行相应的动作

    评论
    解决 无用
    打赏 举报
  • 云霏阳 2015-12-11 06:49

    1.你说的是一个多核情况下的互斥问题,需要加互斥锁;
    2.如果写没有完成,读出来的就是原来的值。

    评论
    解决 无用
    打赏 举报
  • 云霏阳 2015-12-11 07:53

    1.64位系统一次可以写8个字节,不存在写一半的问题,cpu在写内存的时候,总线是锁住的。
    2.多线程互斥可以使用mutex锁来解决互斥的问题。

    评论
    解决 无用
    打赏 举报
  • 云霏阳 2015-12-11 08:17

    硬件的问题你就不用担心了,两个处理器不可能同时去写同一块内存,内存的总线有仲裁机制。

    评论
    解决 无用
    打赏 举报
  • 云霏阳 2015-12-11 08:41

    你说的很对,这个时候就要使用互斥机制。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题