為什么不去掉#include "test.c"會報錯
#include <stdio.h>
extern void printLine()? ? ?//這里定義的方法對嗎?
{
printf("**************\n");
}
int main()
{
say();
return 0;
}
#include <stdio.h>
extern void printLine()? ? ?//這里定義的方法對嗎?
{
printf("**************\n");
}
int main()
{
say();
return 0;
}
2019-07-25
舉報
2019-09-16
不怪,只不過是環(huán)境惹得禍。vs的集成開發(fā)環(huán)境是多線程(面向?qū)ο髮W習后你就曉得了)編譯的,適合大型項目開發(fā)。你可以理解編譯test.c文件和其他文件是同時進行的。當編譯test.c文件時并未找到printLine()的聲明或定義(因為這時候main.c文件還沒有編譯完成),只能假設(shè)printLine()的返回值是int類型(為啥假設(shè)int類型,,,等你有機會了問比爾·蓋茨吧。),而在編譯main.c文件時找到了printLine()的定義,但是printLine()的定義卻是void,導致再次定義失敗。
解決方法:在test.c文件中,say()前添加聲明? void printLine(); 擋掉vs集成開發(fā)環(huán)境的自作主張。
也不錯,你可以理解c函數(shù)分兩級內(nèi)部(static)、外部(extern 默認)。函數(shù)被static標記后就被固定在test.c文件中了,就不能再默認跨文件調(diào)用了。想要調(diào)用就要引入文件,也就是#include "test.c"。
2019-08-08
你安裝的是哪個版本?。繛槭裁磿兄形?,而且底色是黑色的?
2019-07-25
去掉之后出現(xiàn)say未定義。。。