Ⅰ c語言程序缺少頭文件為什麼還可以運行,並得到正確結果
你用的應該是C++的編譯器,C++對函數申明不做強制要求,如果函數沒有申明,直接使用的話,會給你一個默認申明。
編譯過了之後,連接器是根據函數名稱進行連接,和申明關系不大,所以,連接器也能找到正確的函數進行連接。
但你這個程序,應該會生成一些warning,提示部分函數沒有申明。
Ⅱ 在C語言中開始不寫頭文件算不算錯,好像不寫程序也能運行
頭文件的目的是提供函數的聲明,這樣編譯器在調用這個函數的地方就可以進行參數檢查,根據聲明信息生成正確的機器指令。如果已經有了這個函數的聲明,比如你所有的函數都是在一個模塊里的,並且被調用的函數的實現都在調用它的函數的前面,當然不寫頭文件也能編譯通過。
把聲明和實現分開,分別寫成頭文件和.c文件的好處是很清晰,別人要用你這個函數只要#include一下就可以了,所以如果是公共模塊,還是寫頭文件好一些。