想用ndk生成.so,但是要将windows中的InterlockedIncrement()函数改写成atomic_add()函数,但是仔细找了半天没有找到相关的头文件以及对应的API声明,求指点改怎么用这个函数

解决方案 »

  1.   

    #include<linux/atomic_32.h>
    为什么老是提示找不着这个文件或者没有这个路径
    改成#include<asm/atomic_32.h>
    依然找不到路径
      

  2.   

    那应该怎么弄啊?如果想使用atomic_32.h中声明的atomic_inc_return(v)函数,应该怎么做啊?
      

  3.   

    原子操作请参考system/core/include/cutils/atomic.h,这里是android为我们提供的原子操作函数,对应atomic_add,atomic.h中为android_atomic_add()
    你引用的那些只可以在内核空间使用,例如写驱动时可使用,对于应用层无法使用
      

  4.   

    如果在应用层需要用到类似的功能,请问怎么替代啊,尤其是在ndk中使用C代码的时候需要用到防止线程之间数据干扰的函数