㈠ 急~~~~C语言问题:为什么把函数写在主函数后面,但没在主函数内声明,却没有报错
这里涉及到一个路径的问题。我们编写好的程序main函数是入口,当编译器变异的时候会根据里面调用到的其他函数去寻找加载进来一起编译(非main函数如果不被main函数调用其实根本上就没用,这里指的是不被main函数调用和main函数调用过的函数调用),假如是include进来的编译器就知道去库函数里面加载那一个函数,而没有include进来的就会在本目录下检索,假如检索不到就编译出错。库函数所在就相当于老地方,而main函数所在的地方就相当于本地,这两个都是被编译器熟知的。
其实除了c语言,java也会这样,不在同一个包内的类需要导入,在同一个包里面的类不需要导入(import),在同一个java文件里面的类(内部类或者类外面定义的类都一样)也不需要导入。因为编译器知道在这两个地方找,去类库找就需要指定哪一个。
㈡ linux编译c语言,一个被调用的函数只声明了,没有定义,不报错,是怎么回事
你声明了,只要不调用那个函数就不会报错,如果你程序中调用了那个只声明未定义的函数的话,你编译的时候就会报错
㈢ C语言程序,编译没有错误,执行时出错。问题在哪
#include<stdio.h>
intmax(inta,intb);
intmain(void)
{
inta,b,c;
scanf("%d%d",&a,&b);
c=max(a,b);
printf("maxis%d ",c);
return0;
}
intmax(inta,intb)
{
returna>b?a:b;
}
max函数未定义
㈣ C++中,以下代码有错误为何编译器不会报错呀
大哥,操作符不是定义的悔虚,而是要重载。
看腊前银了这句应该理解为何了吧?
也就是说,你的类如果不重载操作符,那么将调用系统自定义的操作符。
所以编译器不会报错,也没有错误。
除非你要重载操轮宴作符,来完成你特定的操作。