mac OS X上的原子增量

gas*_*ard 6 c++ atomic

我在Mac OS X上搜索了原子增量和减量运算符并找到了"OSAtomic.h",但似乎你只能在内核空间中使用它.

Jeremy Friesner向我指出了一个跨平台的原子计数器,他们在OS X上使用汇编或互斥(据我所知,ifdefs的交错).

是不是有类似InterlockedDecrementatomic_dec()在OS X?

wic*_*ich 8

是什么让你觉得OSAtomic只是内核空间?以下编译并正常工作.

#include <libkern/OSAtomic.h>
#include <stdio.h>

int main(int argc, char** argv) {
  int32_t foo = 1;
  OSAtomicDecrement32(&foo);
  printf("%d\n", foo);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)