C库没有任何.
在Linux上,GCC提供了一些-看的__sync_fetch_and_add,__sync_fetch_and_sub等.
在Windows的情况下,寻找InterlockedIncrement,InterlockedDecrement``,InterlockedExchange`,等等.如果你在Windows上使用gcc,我猜它也有与Linux上相同的内置函数(尽管我还没有验证过).
在Solaris上,它取决于它.大概如果你使用gcc,它可能(再次)拥有与它在Linux下相同的内置函数.否则,周围有图书馆,但没有真正标准化.
C11添加了(合理)完整的原子操作和原子类型集.这些操作包括像atomic_fetch_add和atomic_fetch_sum(和*_explicit的版本相同,让你指定你所需要的订货模式,即默认的始终使用memory_order_seq_cst).还有一些fence功能,例如atomic_thread_fence和atomic_signal_fence.
类型对应于每个普通整数类型 - 例如,atomic_int8_t对应于int8_t和atomic_uint_least64_t对应于uint_least64_t.这些是typedef在中定义的名称<stdatomic.h>.为避免与任何现有名称冲突,可以省略标题; 编译器本身在实现者的命名空间中使用名称(例如,_Atomic_uint_least32_t而不是atomic_uint_least32_t).