问题:在C语言中,自定义函数并进行调用,运行后提示“函数未定义”的警告
修改前代码段:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
int max = 0;
printf("请输入两个整数:");
scanf("%d %d",&num1,&num2);
max = Max(num1, num2);
printf("较大的一个整数为:%d\n",max);
return 0;
}
//求两个整数的较大值
int Max(int x, int y)
{
if (x >= y)
{
return x;
}
else
{
return y;
}
}
运行提示警告:
原因分析:
在C语言中,函数在被调用前需要进行声明或定义,上述代码中只在main()函数之后定义了函数Max(),但在main()函数中调用Max()函数时并未在main()函数前进行相应函数声明,所以在运行时提出了未定义警告。
解决方法①:
将函数直接定义在main()函数前,如下所示:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//求两个整数的较大值
int Max(int x, int y)
{
if (x >= y)
{
return x;
}
else
{
return y;
}
}
int main()
{
int num1 = 0;
int num2 = 0;
int max = 0;
printf("请输入两个整数:");
scanf("%d %d",&num1,&num2);
max = Max(num1, num2);
printf("较大的一个整数为:%d\n",max);
return 0;
}
解决方法②
将函数定义在main()函数之后,在main()函数之前进行函数声明,如下所示:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int Max(int x,int y);
int main()
{
int num1 = 0;
int num2 = 0;
int max = 0;
printf("请输入两个整数:");
scanf("%d %d",&num1,&num2);
max = Max(num1, num2);
printf("较大的一个整数为:%d\n",max);
return 0;
}
//求两个整数的较大值
int Max(int x, int y)
{
if (x >= y)
{
return x;
}
else
{
return y;
}
}
修改后运行结果:未提示警告。
以上为个人学习理解,如有错误,希望大家帮忙指正,也欢迎大家给予建议和讨论,谢谢!