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的优势是什么?为什么不把它放在寄存器中?
谢谢.
将volatile帮助任何指针可以传递给函数没有错误或警告,即使是volatile合格的.
但这是假的,你看到的司机似乎不是非常专业.
首先,要完成这样的指针也应该是const合格的,只有它才能捕获真正的所有指针.
然后,根本没有这种功能的用例.在_Bool上下文中(这里!ptr)指针自然会导致正确答案,这是由标准指定的.如你所见,以不同的方式执行它可能在内核社区中很不受欢迎,我猜这个驱动程序没有被正确审查.