2010-03-09 76 views
43

這是我的警告。C警告隱式聲明函數'exit'

implicit declaration of function 'exit' 

我如何刪除它。

我正在使用linux gpcc編譯器&。

+11

'man 3 exit'會顯示包含的標題。 – 2010-03-09 07:01:30

回答

95

地址:

#include <stdlib.h> 

到程序的頂部。

+1

@Greg Hewgill:在我的程序中,我沒有使用'#include ',只有當我使用'-Wall'選項時纔會出現此警告。否則,該程序會編譯正確且可執行的正常運行。這意味着gcc可以以某種方式鏈接到文件,而無需包含它。這是怎麼發生的? – Lazer 2010-05-06 16:13:06

+2

@eSKay:除非使用'-Wmissing-protypes'警告開關(由'-Wall'打開),否則隱式聲明在C中是*允許的*。 – 2010-05-06 19:17:09

10

你有這個預處理器嗎?如果沒有,請添加它。

#include <stdlib.h> 
1

退出()是庫函數的原型respecive中存在stdlib.h中頭文件,inoder的進程調用了exit函數指定的代碼,就需要附加的#在程序中包含stdlib.h標題。這就是我們應該添加stdlib.h頭文件的原因。雖然你們可以運行程序,但它會顯示警告信息象下面這樣:

warning: incompatible implicit declaration of built-in function ‘exit’ [enabled by default]  

但是,這種方案不推薦,我們需要照顧的就是我們在節目中給出謹慎。 警告可能會導致運行時錯誤。