C语言中函数名必须唯一吗 c语言的函数名实际上是什么( 二 )


void a()
{
int num;
scanf(%d,num);
printf(%d\n,num);
}
main()
{
a();
}
因为定义在调用之前,所以可以不声明函数 , 这是因为编译器在编译的时候,已经发现a是一个函数名,是无返回值类型无参数的函数了 。
那么很多人也许就会想 , 那我们何必还要声明这一步呢?我们只要把所有的函数的定义都放在前面不就可以了吗?这种想法是不可取的 , 一个好的程序员总是在程序的开头声明所有用到的函数和变量,这是为了以后好检查 。
前面说了 , 在调用之前,必须先声明函数,所以下面的做法也是正确的(但在这里我个人并不提倡) 。
main()
{
void a();
a();
}
void a()
{
int num;
scanf(%d,num);
printf(%d\n,num);
}
一般来说 , 比较好的程序书写顺序是,先声明函数,然后写主函数,然后再写那些自定义的函数 。
既然main()函数可以调用别的函数 , 那么我们自己定义的函数能不能再调用其他函数呢?答案是可以的 。看下面的例子:
void a();
void b();
main()
{
a();
}
void a()
{
b();
}
void b()
{
int num;
scanf(%d,num);
printf(%d\n,num);
}
main()函数先调用a()函数,而a()函数又调用b()函数 。在C语言里 , 对调用函数的层数没有严格的限制 , 我们可以往下调用100层、1000层,但是在这里我们并不提倡调用的层数太多(除非是递归),因为层数太多 , 对以后的检查有一些干扰 , 函数调过来调过去,容易让自己都晕头转向 。
某些人可能就不明白了,看上面的例子,好象使用函数后,程序变的更长了 , 更不让人理解 。当然,我举的这个例子的确没有必要用函数来实现,但是对于某些实际问题,如果不使用函数,会让程序变的很乱,这涉及到参数问题 。
关于C语言中函数名必须唯一吗和c语言的函数名实际上是什么的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读