2017-04-09 66 views
1

當我用lint編譯我的程序時,它給出了皮棉警告。面對林特警告560:參數沒有。 3應該是一個指針

printf("[Line:%d] at [Func:%s] failed to detect device\n" 
             , __LINE__, __func__); 

此打印消息時,我收到以下錯誤我

Warning 560: argument no. 3 should be a pointer 

誰能幫助我?

+1

你使用什麼編譯器? – iafisher

+0

gcc版本4.9.2 20150212(紅帽4.9.2-6)(GCC) – Akaash

+1

也許它應該是'__FUNC__'而不是'__func__'? –

回答

1

您的原始代碼(與__func__)是正確的;皮棉警告是錯誤的。

__func__是C99標準的1999年修訂版「C99」的一個特性。我無法確定這一點,因爲FlexeLint是非常昂貴的專有軟件,他們甚至不允許您免費閱讀完整手冊,但我強烈懷疑它默認使用較早的C89標準。應該有一個命令行選項或將其放入C99模式的選項,並且在該模式下,應該接受您的原始代碼而不用投訴。

相關問題