在这种情况下,"易变"的优势是什么?

2 c volatile linux-device-driver

我有以下函数实现,检查NULL指针.这是Linux驱动程序的一部分,C代码:

bool is_null_ponter(volatile void* ptr)
{
  return (NULL == ptr)? true : false;
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,volatile的优势是什么?为什么不把它放在寄存器中?

谢谢.

Jen*_*edt 9

volatile帮助任何指针可以传递给函数没有错误或警告,即使是volatile合格的.

但这是假的,你看到的司机似乎不是非常专业.

首先,要完成这样的指针也应该是const合格的,只有它才能捕获真正的所有指针.

然后,根本没有这种功能的用例.在_Bool上下文中(这里!ptr)指针自然会导致正确答案,这是由标准指定的.如你所见,以不同的方式执行它可能在内核社区中很不受欢迎,我猜这个驱动程序没有被正确审查.