函数的定义与调用
前言
当你写代码的时候你是否会发现自己的代码冗杂,一条龙写到底,这样虽然直观,但是却不利于查找错误和重复利用。而函数的定义与灵活调用则可以很大解决这个问题。就像你要组装很多种车,但是轮子都是一样的,你就可以把轮子提前存好,下次造其他车的时候直接拿过来用。
一,函数的定义
函数你可以理解为一个自动加工机器人,有很多种不同的机器人,你给他原材料,他会给你制造预期的产品。函数包含三部分:函数返回值类型,函数名,参数表。
- 基本结构如下
函数返回值类型 函数名(参数表) {语句体}
2.代码示例
int add(int a,int b)
{
return a+b;
}
注:
1.返回值类型可以是前面说到的某个数据类型,或者是某个数据类型的指针,指向结构的指针,指向数组的指针。(这句话目前我们只看第一句就行)
2.返回值可以有很多个,也可以没有(void),这章主要讲无返回值的函数调用,如打印函数。
二,函数的声明与调用
你要调用一个函数,必须要告诉main这是个什么东东,如果你直接放到main里面去运行,会报错。下面我们用一个示例来展示一下;
显然,这两个程序都实现了功能。仔细观察,因为程序自上而下执行,但是定义的函数在main的后面,所以你必须声明·才能调用,第二个因为它在main前面,所以可以不声明。声明的方式就是把{}前面的那些复制再加个分号放在main前面就行。
再看调用的方式,直接把返回值类型去掉,当然,在以后的有返回值的函数中还要考虑实参形参的问题。
交叉调用
也就是函数里再调用函数,这也是可以的,不过不要犯逻辑上的错误就行。如:
#include "stdio.h"
void shili2();
void shili();
main()
{
shili();
}
void shili()
{
printf("这是示例\n");
shili2();
}
void shili2()
{
printf("这是示例2");
}
虽然说交叉调用合法,但是还是不要嵌套太多,不然出错也比较难找。