unresolved externals错误是由于函数未进行声明造成,可以在被调用地方前面进行声明即可消除该错误。
#include
int main()
{
int a=4,b=8, c;
c=jh(a,b); // 由于调用函数jh之前没进行函数的声明,所以会报错
printf("%d,%d,%d",a,b,c);
}
int jh(int a,int b) // 函数定义在被调用之后,必须进行函数的声明
{
int c;
c=a;
a=b;
b=c;
return c;
}
正确的程序如下:
#include
int jh(int a,int b); // 函数声明,进行声明后即可消除unresolved externals错误
int main()
{
int a=4,b=8, c;
c=jh(a,b); // 由于调用函数jh之前没进行函数的声明,所以会报错
printf("%d,%d,%d",a,b,c);
}
int jh(int a,int b) // 函数定义在被调用之后,必须进行函数的声明
{
int c;
c=a;
a=b;
b=c;
return c;
}
注:将自定义函数写在被调用之前的位置,可以不需要进行函数声明。如:
#include
int jh(int a,int b) // 函数定义在被调用之前,可以不进行函数的声明
{
int c;
c=a;
a=b;
b=c;
return c;
}
int main()
{
int a=4,b=8, c;
c=jh(a,b);
printf("%d,%d,%d",a,b,c);
}
也许是函数声明没放在最前面吧?而且你的main函数怎么用的是int类型,c语言里的main函数都是void类型,C++里的才有int型main函数,而且还需要返回值的。
再插两句嘴,1.你的程序不会交换数据,因为你只是把形参的值转换了一下,实参值没有转换,要么用指针变量做参数,要么返回两个数据并且有变量接收,否则你的程序就算编译通过也得不到结果。2.最严重的是:你根本就没有调用你自己写jh()函数,主函数第二行那个只是声明,不是调用。
max函数没有定义,你只声明了,没有具体定义。