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