注掉 test.c
能不能理解為重復(fù)引用的問題.本來say()方法是全局的一個方法,main不需要引入test.c就可以調(diào)用,現(xiàn)在強行把test.c引入到hello里面,導(dǎo)致了現(xiàn)在的作用域里面有2個say()方法,所以程序報錯
能不能理解為重復(fù)引用的問題.本來say()方法是全局的一個方法,main不需要引入test.c就可以調(diào)用,現(xiàn)在強行把test.c引入到hello里面,導(dǎo)致了現(xiàn)在的作用域里面有2個say()方法,所以程序報錯
2019-06-04
舉報
2020-01-29
因為第二行已經(jīng)調(diào)用了test.c,如果test.c中的say()不改成static類型的話,那么hello.c中的第九行中的say()就會被系統(tǒng)認為再一次調(diào)用了test.c文件,從而報錯;如果改為static類型,那么hello.c中的第九行中的say()就只能從第二行已調(diào)用的test.c文件中調(diào)用,從而避免了二次調(diào)用。個人見解。。。
2019-07-24
對,是這樣的。但是就是不知道怎么解答
2019-06-16
你的這個問題也是我的問題,這個問題把我弄崩潰了。首先要說一點,我不知道他的答案顯示是用什么模擬的。如果按照老師給的參考,是無法通過的。按照C語言的邏輯來講,你的想法是對的。我電腦并沒有安裝純正的c語言編譯程序。大多數(shù)人用的是vs6.0來學(xué)習(xí)C語言,我沒有安裝,不知道會顯示什么。我用的是vs2019,vs2019中支持多種語言,我用了c++,所以有個問題。c語言雖然能在c++運行,可是c++不是c語言啊。這就是一種包含關(guān)系。c++源文件為.cpp文件,c為.c文件。在vs中,必須#include<test.cpp>文件,否則會報錯,說say()是未定義的標識符,可是當你把<test.cpp>寫入之后還會報錯,重復(fù)定義了say!我試著把say用static修飾,程序可以運行,但是有個問題出現(xiàn)了。hello文件中定義的printLine()函數(shù)在say()函數(shù)中沒法用了,換言之就是輸出結(jié)果沒有printLine。你可以去試試看,我們可以一起研究一下。