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

时间:2011-08-08 07:00:38

标签: c linux-device-driver volatile

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

bool is_null_ponter(volatile void* ptr)
{
  return (NULL == ptr)? true : false;
}

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

谢谢。

1 个答案:

答案 0 :(得分:9)

volatile有助于将任何指针传递给函数而不会出现错误或警告,即使它是volatile限定的。

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

首先,要完成这样的指针也应该是const限定的,只有它才会捕获所有指针。

然后,根本就没有这种功能的用例。在_Bool上下文(此处为!ptr)中,指针自然会导致正确答案,这由标准指定。正如你在这里看到的那样,在内核社区中可能会有很多不满,我想这个驱动程序还没有被正确审核。