gpt4 book ai didi

c - "++"操作在 C 中是原子的吗?

转载 作者:太空宇宙 更新时间:2023-11-03 23:26:15 24 4
gpt4 key购买 nike

我正在尝试确定是否有如下语句:

++value;   //assuming "value" is a **global** variable

是一个原子操作。

我需要知道这个计算是否能够被写入同一个全局变量的中断服务程序中断。

最佳答案

在没有原子类型的对象上,标准从不将++ 定义为原子操作。

C11 在 stdatomic.h 中定义原子类型。如果你有一个原子类型的对象,postfixprefix 运算符 ++ 会将原子操作定义为:read-使用 memory_order_seq_cst 修改写入操作内存顺序语义。

如果你想要一个原子增量,你也可以使用 atomic_fetch_add()。

关于c - "++"操作在 C 中是原子的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26900404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com