C语言函数声明的位置的问题

来源:百度知道 编辑:UC知道 时间:2024/06/19 09:10:26
看这个程序:
#include <stdio.h>
disp(int *n);
int main()
{int m[10],i;
for(i=0;i<10;i++)
m[i]=i;
disp(m);
getch();
return 0;
}
disp(int *n)
{int j;
for(j=0;j<10;j++)
printf("%3d",*(n++));
printf("\n");

这个程序我能不能把disp函数的声名放在主函数的里面?
我认为可以放在里面,可是放在里面的时候程序就报错,这是为什么啊?

那再看这个函数,这个函数就是add函数放在主函数的里面,但是它却没有问题啊,这到底是怎么回事啊,用户自定义函数到底什么时候能放在主函数里面,什么时候不能放在主函数里面啊?

#include <stdio.h>
void main()
{float add(float x,float y);
float a,b,c;
scanf("%f,%f",&a,&b);
c=add(a,b);
printf("sum is %f\n",c);
}
float add(float x,float y)
{float z;
z=x+y;
return(z);
}
以上程序我都运行过,没问题,我用的是turbo c 2.0

如果被引用函数在其他文件中定义的,就在主函数外声明;如果是在该文件中定义的,就应当在主函数中声明。 你的几个函数都是在一个文件中定义的,所以应当在main 中声明
希望对你有用!!

你如果把disp函数的声名放在主函数的里面时,前面加一个int或别的类型再编译就对啦

加个INT也不对,C中如果函数你不写返回值类型,他默认的就是整型。
我记得是这样的,1.把子函数放主函数MAIN函数外并且是之前定义,无需声明。2.如果你把子函数放到MAIN函数外,则必须在定义的时候先声明。3.如果把 子函数放在MAIN函数中就不需要提前声明了。

下面的程序对add函数的定义并没有放在主函数里面,而是在主函数结束以后才定义的。你可以仔细看一下下面的程序。

你上面那个没有定义函数类型