zoukankan      html  css  js  c++  java
  • test_bit原子操作

    原子位操作

         操作函数的参数是一个指针和一个位号

    原子位操作定义在文件中。令人感到奇怪的是位操作函数是对普通的内存地址进行操作的。原子位操作在多数情况下是对一个字长的内存访问,因而位号该位于0-31之间(在64位机器上是0-63之间),但是对位号的范围没有限制。

    原子操作中的位操作部分函数如下:
    void set_bit(int nr, void *addr)        原子设置addr所指的第nr位
    void clear_bit(int nr, void *addr)      原子的清空所指对象的第nr位
    void change_bit(nr, void *addr)         原子的翻转addr所指的第nr位
    int test_bit(nr, void *addr)            原子的返回addr位所指对象nr位
    int test_and_set_bit(nr, void *addr)    原子设置addr所指对象的第nr位,并返回原先的值
    int test_and_clear_bit(nr, void *addr)  原子清空addr所指对象的第nr位,并返回原先的值
    int test_and_change_bit(nr, void *addr)  原子翻转addr所指对象的第nr位,并返回原先的值

        unsigned long word = 0;

        set_bit(0, &word); /*第0位被设置*/

        set_bit(1, &word); /*第1位被设置*/

        clear_bit(1, &word); /*第1位被清空*/

        change_bit(0, &word); /*翻转第0位*/

  • 相关阅读:
    jQuery序列化
    jQuery的ajax与django传参
    Django中的cookie与session操作
    Django文件上传
    Django表单的简单应用
    django加载模板文件
    django-admin.py创建项目失败解决方法
    django笔记
    unity创建xml与加载xml
    JavaScript相关
  • 原文地址:https://www.cnblogs.com/zxc2man/p/14653138.html
Copyright © 2011-2022 走看看