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

如题所述

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

编译环境是指什么?不存在的函数是max吗?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-05-21
首先编译已经报错: 有一个找不到的符号链接_max
max这个函数你只声明了但没有定义,也就是编译器只知道有这么个函数,但是函数是做什么的,不知道。
如果你是新手,咨询一下其他同学或者老师,这个问题实在不应该发出来,自学才是最好的老师。追问

这个程序是老师的PPT上的,我对照了几遍都没有错误,所以才会问……而且编译时显示0error(s)0warning(s)

第2个回答  2016-05-21
#include <stdio.h>
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函数未定义

相似回答