同樣的代碼為什么我是錯的
#include?<stdio.h> #include?"test.c"???//引用test.c文件 extern?void?printLine()?????//這里定義的方法對嗎? { ???printf("**************\n");??? } int?main() { ????say(); ????return?0; }
#include?<stdio.h> #include?"test.c"???//引用test.c文件 extern?void?printLine()?????//這里定義的方法對嗎? { ???printf("**************\n");??? } int?main() { ????say(); ????return?0; }
2019-08-20
舉報(bào)
2019-10-10
第一次為:(hello.c)static——extern?第二細(xì)心觀察一下hello.c中的第二行(#include"text".c【包括(含)text.c文件】) 再看一下第九行(say();【調(diào)用text.c】) 細(xì)心觀察一下text.c的源代碼你會發(fā)現(xiàn)其實(shí)這倆行的目的都是一樣的在調(diào)用(hello.c調(diào)用text.c),所以就變成了重復(fù)調(diào)用text.c這時(shí)系統(tǒng)就會報(bào)錯。所以我們應(yīng)該將text.c中的第2行(erxtern(默認(rèn))) void say()改成static void say()[這里的static是對函數(shù)的作用范圍的一個(gè)限定,限定該函數(shù)只能在其所處的源文件中使用]? ?這樣就不會和前面的起沖突了。??
第二個(gè)方法就是把hello.c的第二行引用注釋(#include"text.c")去掉? 這樣只要把hello.c中的void printLine()前加上關(guān)鍵字【extern】,因?yàn)閠ext.c中的say()前沒有關(guān)鍵字,所以系統(tǒng)默認(rèn)為extern。這樣外部函數(shù)就可以隨意被調(diào)用了。
2019-08-20
看上面,還有test.c一欄
2019-08-20
什么意思?