|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h> 为啥一个函数声明在主函数里面,还能正常运行呢?不太理解,我以为函数声明只能是全局变量
int max(int x,int y)
{
int z;
if(x>y)
{
z=x;
}
else
{
z=y;
}
return (z);
}
int main()
{
int max(int x,int y);
int a,b,c;
printf("请输入两个整数:");
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("最大的数字是:%d",c);
return 0;
}
你的问题是关于 C 语言中函数的声明和定义。让我们先澄清一些概念:
· 函数定义:函数定义是描述函数是如何工作的。在函数定义中,我们写出函数的实际内容,即函数的代码。在你的例子中, int max(int x, int y) {...} 就是一个函数定义。
· 函数声明:函数声明是告诉编译器有一个函数,它告诉编译器函数的名字、返回类型以及参数类型。这样,编译器就可以在函数被实际调用之前知道函数的存在。你在 main 函数中看到的 int max(int x, int y); 就是函数声明。
对于你的问题:为什么函数声明可以在主函数中,还能正常运行?
这是因为函数声明的位置并不重要。无论是在主函数中,还是在全局范围内,只要在你实际调用函数之前,编译器已经看到了函数的声明,那么程序就可以正常运行。
在你的示例中, int max(int x, int y); 这个声明在调用 max(a, b); 之前就出现在 main 函数内,所以编译器知道了 max 函数的存在,所以程序可以正常运行。
这种将函数声明放在函数内部的方式是合法的,但是在实践中,我们通常会把函数的声明放在所有函数的上面,也就是在全局范围内,这样可以提高代码的可读性。
|
|