2014-02-17 122 views
2

什麼是包括標準的頭文件在C如stdio.hstdlib.h等。 gcc編譯器只是顯示一個警告,並含蓄地宣佈它像爲什麼包含標準頭文件?

功能上的「printf」

的隱式聲明的原因

和程序成功執行...
而不是刪除警告,是否有任何理由包含頭文件?

+0

*'FILE' *命名一個結構是有用的,在stdio.h –

+0

宣佈你已經回答了你的問題,其中包括報頭的點是從生成的警告停止編譯器。停止編譯器生成警告是一件好事。編譯器向您顯示警告的事實也是一件好事。順便說一句,如果它更容易,你可以把常用的包括在一起,只是說'#include「stanard_headers.h」'或類似的東西,以減少打字,如果你想。 – Brandin

回答

4

嗯,是的,當然是有原因的。

的原因是,與標題,你會得到正確的聲明,否則你得到的聲明,其中假定每一個函數返回int。由於許多功能(例如malloc())不返回int,假設它們確實會造成很大的危害。

隨着函數聲明編譯器實際上可以檢查參數和返回值的使用,這是非常好的匹配。

此外,還有當然情況下,頭文件中聲明的數據類型,枚舉等等,你需要,還有比在頭功能的更多。

+1

它不僅返回值,但所有參數的類型也是隱式int類型,這使得問題的類型不是INT不再如長長整型 –

+0

此外,在64位操作系統,指針是64位,所以隱式int類型可能會導致嚴重的問題 –

相關問題