【問題】
某函數中:
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了。