c語言include后面跟什么 c語言,各位大佬問一下,有沒有什么辦法使得include函數找不到對應文件名的時候,輸出null呢?
c語言,各位大佬問一下,有沒有什么辦法使得include函數找不到對應文件名的時候,輸出null呢?最后我會附上一個實現(xiàn)這個功能的方法,但我想說的是,這樣做是沒有意義的。即使您可以通過某種方式成功編譯
c語言,各位大佬問一下,有沒有什么辦法使得include函數找不到對應文件名的時候,輸出null呢?
最后我會附上一個實現(xiàn)這個功能的方法,但我想說的是,這樣做是沒有意義的。即使您可以通過某種方式成功編譯,甚至輸出null,您的程序也可能無法運行,或者在運行時會出現(xiàn)錯誤。
作為一種靜態(tài)編譯語言,在編譯階段或預編譯階段查找錯誤比在運行時查找錯誤更有意義,因此當前編譯器將變得更加智能,幫助您檢查程序中的潛在問題,提示您進行修改,包括找不到include中指定的文件。所有這一切的唯一目的是提前發(fā)現(xiàn)問題,它使運行時程序更加健壯和高效。
那么如何強制實現(xiàn)這個功能呢?當然,最直接的方法是修改編譯器,這對于大多數商業(yè)編譯器是不可行的,因為您沒有源代碼。然而,像GCC這樣的開放源碼軟件仍然可以嘗試,但這更困難。能改變的人永遠不會做這種毫無意義的事。
我想談的另一個簡單方法是編寫一個檢測工具。它的功能非常簡單。它是分析每個include指令,然后檢查文件是否存在。對于不存在的問題,請將指令替換為空輸出語句,例如:
file1。H
//存在
文件2。H
//不存在
//文件內存
運行檢測工具后:
#include“File1。H”//exists
打?。ā皀ull在文件%s的第%d行“uuuuuuuuuu文件,uuuuuuuuuuuuuuuuuuuuuuu行)
//文件內容
然后在編譯之前運行此工具。對于未使用的include文件,此方法將輸出null。對于文件中使用的include文件的內容,如變量、宏或函數,將提示編譯錯誤。
下面是如何在vc2017中設置自定義工具,如下圖所示:
打開項目屬性->自定義生成步驟->配置相關參數。