【问题】
某函数中:
unsigned int flags;
。。。。
local_irq_save(flags);
。。。。。
编译后,出现警告:comparison of distinct pointer types lacks a cast
去查找源码,发现这个函数 local_irq_save是宏定义,跟踪到最后是和将传入参数取地址赋值给unsigned long型的地址。
【解决办法】
所以,将 unsigned int flags;
换成 unsigned long flags;就可以消除那个warning了。