我在Mac OS X上搜索了原子增量和减量运算符并找到了“OSAtomic.h”,但似乎你只能在内核空间中使用它.
Jeremy Friesner指出我在跨平台atomic counter,他们在OS X上使用汇编或互斥(据我所知,ifdefs的交错).
OS X上是不是有类似InterlockedDecrement或atomic_dec()的东西?
解决方法
是什么让你觉得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; }