我正在研究Windows和其他平台上运行的C语言代码。我知道诸如InterlockedExchangePointer之类的函数可以原子地读取/写入数据指针,而且我敢肯定其他平台也有类似的东西,但是我该如何使用可移植的方法使用函数指针呢?有可能还是我需要锁或内存挡板之类的东西?
答案 0 :(得分:0)
C11 atomics是基于标准的,但并非所有编译器都支持。
GCC 4.1+,以及力求与其兼容的clang和ICC等编译器均支持__sync
builtins。
我有some code,它提供了您可能感兴趣的通用API。