-5
int fd = open("/dev/mem", O_RDWR);
present = (unsigned char *)mmap(0, 
              getpagesize(), 
              PROT_READ|PROT_WRITE, 
              MAP_SHARED, 
              fd, 
              0x22400000);

if ((*present & 1) == 0)
{
  printf("Converter not present\n");
  exit(1);
}

1) 前面代码中的“&”运算符是什么意思?

4

1 回答 1

4

它是按位和运算符。这意味着操作的结果是执行and两个操作数的二进制,但逐位(按位方式,即)。

在这种情况下,它正在检查 present 指向的内存的第一位是否为 0。

于 2013-02-18T03:20:23.990 回答