同樣的代碼為什么我是錯的
#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
舉報
2019-10-10
第一次為:(hello.c)static——extern?第二細心觀察一下hello.c中的第二行(#include"text".c【包括(含)text.c文件】) 再看一下第九行(say();【調用text.c】) 細心觀察一下text.c的源代碼你會發現其實這倆行的目的都是一樣的在調用(hello.c調用text.c),所以就變成了重復調用text.c這時系統就會報錯。所以我們應該將text.c中的第2行(erxtern(默認)) void say()改成static void say()[這里的static是對函數的作用范圍的一個限定,限定該函數只能在其所處的源文件中使用]? ?這樣就不會和前面的起沖突了。??
第二個方法就是把hello.c的第二行引用注釋(#include"text.c")去掉? 這樣只要把hello.c中的void printLine()前加上關鍵字【extern】,因為text.c中的say()前沒有關鍵字,所以系統默認為extern。這樣外部函數就可以隨意被調用了。
2019-08-20
看上面,還有test.c一欄
2019-08-20
什么意思?