我正在尝试确定是否有如下声明:
++value; //assuming "value" is a **global** variable
是一个原子操作。
我需要知道该计算是否能够被写入同一全局变量的中断服务例程中断。
对于没有原子类型的对象,标准从不将 ++ 定义为原子操作。
C11 在 stdatomic.h 中定义原子类型。
如果您有一个具有原子类型的对象,postfix and prefix运营商++
将原子操作定义为:使用 memory_order_seq_cst 进行读-修改-写操作
内存顺序语义。
如果您想要原子增量,也可以使用atomic_fetch_add()。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)