1.对于编译时的常数使用上面的函数进行判断
假设我们要测试的数为test = 0x00000008,它的第三位是否为1(位数是从0数起),即nr = 3 = 0x00000003,addr就是我们测试的数的地址
addr = &test; 对于运算addr[nr >> 5] = addr[0] 也就是test的值
对于前面部分 1UL左移3位,其值就是0x00000008,它们&运算后,结果是0x00000008 != 0,所以return的结果返回是1
即0x00000008的第3位是1,其结果也确实是1。其他的情况照样子可以这样子验证。