------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
一.函数的定义
1. 定义函数的目的
将一个常用的功能封装起来,方便以后调用
2. 定义函数的步骤
函数名:函数叫什么名字
函数体:函数是干啥的,里面包含了什么代码
3. 格式
固定格式(很多语言的函数都是这么写的)
返回值类型 函数名(形式参数列表)
{
函数体
}
举例
定义一个函数,计算两个整数的和
sum(int a, int b)
{
int c = a + b;
}
二.函数的形参和实参
举例
#include<stdio.h>
//形式参数,简称形参
int sum(int num1;int num2)
{
return num1 + num2;
}
int main()
{
int a=100;
int b=27;
//a,b称为函数的实际参数,简称实参
int c= sum(a,b);
printf("c is %d\n");
return 0;
}
*注意点:
1.形式参数:定义函数时,函数名后面的参数简称形参。
2.实际参数:调用函数是传入的具体数据简称实参。
3.实参个数必须等于形参个数。
4.函数内部不能定义和形参一样的变量。
5.如果是基本数据类型作为函数形参,纯粹是值传递,修改函数内部形参的值,并不会影响外面实参的值。
6.一个函数可以没有形参,也可以有无限多个形参。
三.函数的返回值
1.return的作用:
1)退出函数
2)返回一个具体值给函数调用者
2.返回值注意点:
1)void代表没有返回值
2)如果没有明确说明返回值的类型,默认是返回int类型
3)就算明确声明了返回值类型,也可以不返回任何值
3.默认情况下,C语言不允许两个函数名一样
四.定义函数的步骤
1.举例
/*求两个整数的和
打印一条横线
打印N条横线*/
#include<stdio.h>
int sum(int a,int b)
{
return a + b;
}
void printLine()
{
printf("-----------\n");
}
void printLine(int n)
for(int i=1;i<=n;n++)
{
printf("-----------\n");
}
int main()
{
printf("%d\n",sum(100,200);
return 0;
}
2.使用注意和函数声明
1)默认情况下,不允许有函数的名称一样。
2)函数不能嵌套定义
3)函数不能重复定义,但是可以重复声明
4)如果有函数的声明,没有函数的定义
1>编译可以通过,因为编辑器只会检测语法合不合理,并不会检测函数有没有定义
2>链接报错:因为链接的时候会检测函数是否定义
五.#include的基本使用
1.拷贝右边文件的所有内容到#include所在的位置
2.自定义的文件用" ",系统自带的文件用<>
3.#include<stdio.h>的目的,拷贝printf函数的声明
六.多文件团队开发的基本实现
1.举例
张三:编写main函数
李四:编写一些简单的算数运算函数
编译:张三.c---->张三.o (main函数)
编译:李四.c---->李四.o (average函数)
链接:把项目中所有关联的.o目标文件和C语言函数库合并在一起,生成可执行文件
2.完善代码
1.函数的定义放.c文件,函数的声明放.h文件
2.如果要使用某个.c文件中定义的函数,只需要#include这个.文件对应的.h文件
3. .h文件的作用:被别人拷贝,编译链接的时候不需要管.h文件