c語言null沒有被定義 “空”可以用語言描述嗎?怎么樣?
“空”可以用語言描述嗎?怎么樣?我會附上一個方法來實現(xiàn)這個功能,但我想說的是,這樣做是沒有意義的。即使您可以通過某種方式成功編譯,甚至輸出null,您的程序也可能無法運行,或者在運行時會出現(xiàn)錯誤。作為
“空”可以用語言描述嗎?怎么樣?
我會附上一個方法來實現(xiàn)這個功能,但我想說的是,這樣做是沒有意義的。即使您可以通過某種方式成功編譯,甚至輸出null,您的程序也可能無法運行,或者在運行時會出現(xiàn)錯誤。
作為一種靜態(tài)編譯語言,在編譯階段或預(yù)編譯階段查找錯誤比在運行時查找錯誤更有意義,因此當(dāng)前編譯器將變得更加智能,幫助您檢查程序中的潛在問題,提示您進行修改,包括找不到include中指定的文件。所有這一切的唯一目的是提前發(fā)現(xiàn)問題,它使運行時程序更加健壯和高效。
那么如何強制實現(xiàn)這個功能呢?當(dāng)然,最直接的方法是修改編譯器,這對于大多數(shù)商業(yè)編譯器是不可行的,因為您沒有源代碼。然而,像GCC這樣的開放源碼軟件仍然可以嘗試,但這更困難。能改變的人永遠(yuǎn)不會做這種毫無意義的事。
我想談的另一個簡單方法是編寫一個檢測工具。它的功能非常簡單。它是分析每個include指令,然后檢查文件是否存在。對于不存在的問題,請將指令替換為空輸出語句,例如:
file1。H
//存在
文件2。H
//不存在
//文件內(nèi)存
運行檢測工具后:
#include“File1。H”//exists
打印(“null在文件%s的第%d行“uuuuuuuuuu文件,uuuuuuuuuuuuuuuuuuuuuuu行)
//文件內(nèi)容
然后在編譯之前運行此工具。對于未使用的include文件,此方法將輸出null。對于文件中使用的include文件的內(nèi)容,如變量、宏或函數(shù),將提示編譯錯誤。
下面是如何在vc2017中設(shè)置自定義工具,如下圖所示:
打開項目屬性->自定義生成步驟->配置相關(guān)參數(shù)。
c語言,各位大佬問一下,有沒有什么辦法使得include函數(shù)找不到對應(yīng)文件名的時候,輸出null呢?
在C語言中,null和0的值是一樣的,但是為了便于識別,為了目的和目的,null用于指針和對象,0用于數(shù)值。對于字符串的結(jié)尾,使用“0”,其值也是0。但是,人們可以看到這是字符串的結(jié)尾,而不是指針或普通的數(shù)值。在不同的系統(tǒng)中,null并不總是與0相同。同樣,null只表示一個null值,也就是說,它指向一個不使用的地址。在大多數(shù)系統(tǒng)中,0被認(rèn)為是一個不被使用的地址,因此有一個類似“define null”的定義0并不總是這樣。某些系統(tǒng)不使用0地址作為null,而是使用其他地址。因此,不要將null等同于0,特別是在一些跨平臺代碼中,這會給您帶來災(zāi)難。