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位*/

  • 相关阅读:
    C# 6.0
    C# 4.0
    C# 5.0
    C# 3.0
    C# 2.0
    C# 1.0(2002)
    字典树Trie
    Hadoop——生态体系
    程序是怎样跑起来的
    Redis实战(十七)Redis各个版本新特性
  • 原文地址:https://www.cnblogs.com/zxc2man/p/14653138.html
Copyright © 2011-2022 走看看