相当于Linux/gcc中的InterlockedIncrement

min*_*ang 25 c c++ assembly multithreading intrinsics

这将是一个非常简单的问题(可能重复),但我无法找到它.

Win32 API提供了一组非常方便的原子操作(作为内在函数),例如InterlockedIncrement发出lock addx86代码.另外,InterlockedCompareExchange映射到lock cmpxchg.

但是,我想在Linux中用gcc做到这一点.由于我正在使用64位,因此无法使用内联汇编.是否存在gcc的内在函数?

Nik*_*sov 30

GCC Atomic Built-ins

  • 实际上,InterlockedIncrement()的等价物是__sync_add_and_fetch().__sync_fetch_and_add()返回先前的值,与InterlockedIncrement()不同,后者返回新值. (17认同)