1. “自定义函数在调用之前,必须进行函数声明,否则编译会出错”这句话为什么是错误的
这句话是错误的,只有定义在调用之后的函数才需要声明,如果定义在调用之前的函数,无需声明,例子1,定义在调用之后,必须声明:
main(){
int f();//这个声明是必须的
printf("%d",f());
}
int f(){return 1;}
例子2,定义在调用之前,无需声明:
int f(){return 1;}
main(){
/*int f();//这个声明不需要*/
printf("%d",f());
}最后,这个其实是历史遗留问题,以前的效率较低,编译器多次扫描源程序麻烦,现代编译器为了实现优化,都会反复多次扫描源程序。