在使用 Clang 原子的 C 中,我应该如何执行原子预增量?

Jus*_*cle 0 c atomic clang

从这个问题扩展(How to do anatomicincrement and fetch in C?

在 C 中,使用 Clang 编译器,我怎样才能做原子等价的事情

const int v = ++x

据我了解,v = atomic_fetch_add(&x, 1)将返回原始值(即v = x++),这是一个后增量。

如何返回 x 的更新值?

注意:这个问题是关于 C 的,任何带有“use std::atomic<>”的回复都将相应地被否决。

ike*_*ami 6

您可以使用

v = atomic_fetch_add(&x, 1) + 1;
Run Code Online (Sandbox Code Playgroud)