C语言程序,编译没有错误,执行时出错。问题在哪?

2024-11-20 16:38:06
推荐回答(3个)
回答1:

1 编译阶段,执行的是对单个文件的转换,从源代码转换成二进制文件。
2 链接阶段,将每个源文件转成的二进制文件,及相关的系统库文件共同打包生成可执行文件。
3 从定义上可以看出,链接阶段,出现错误有两种可能:
1) 函数中引用了不存在的函数。
2) 编译环境有问题,导致ld出错。

回答2:

首先编译已经报错: 有一个找不到的符号链接_max
max这个函数你只声明了但没有定义,也就是编译器只知道有这么个函数,但是函数是做什么的,不知道。
如果你是新手,咨询一下其他同学或者老师,这个问题实在不应该发出来,自学才是最好的老师。

回答3:

#include 
int max(int a,int b);
int main(void) 
{
int a,b,c;
scanf("%d%d",&a,&b);
c=max(a,b);
printf("max is %d\n",c);
return 0;
}
int max(int a,int b)
{
return a>b?a:b;
}

 max函数未定义