c程序是由函数组成的,我们写的代码都是由主函数main()开始执行的。函数是c程序的基本模块,是用于完成特定任务的程序代码单元
从函数定义角度看,函数可分为系统函数和用户定义函数。
系统函数,即库函数:
这是由编译系统提供的,用户不必自己定义这些函数,可以直接使用他们,如我们常用的打印函数printf().
用户定义函数:
用以解决用户的专门需要。
函数的声明
格式:
extern 返回值 函数名(参数列表)
函数声明中的参数是形参
例:
extern int add(int a,int b);
函数的定义
格式:
返回值类型 函数名(参数列表)
{
函数体(代码体)
return 返回值
}
例:
int add(int a,int b)
{
return a+b;
}
无返回值用void
函数定义中的参数列表中的数据成为函数的形式参数------形参接收实参,在函数内部进行运算
函数名
理论上是可以随意起名字,最好起的名字见名知意,应该让用户看到这个函数名字就知道这个函数的功能。注意:函数名后面有个圆括号(),代表这个为函数,不是普通的变量名。
形参列表
在定义函数时指定的形参,在未出现函数调用时,它们并不占内存中储存单元,因此称它们时形式参数或虚拟参数,简称形参,表示它们并不是实际存在的数据,所以,形参里的变量不能赋值
形参可有可无,根据函数的需要来设计,如果没用形参,圆括号内容为空,或写一个void关键字
函数的调用
格式:
函数名(参数列表)
函数声明,定义之后可以多次使用。形参不会影响实参的值,实参会影响形参的值
int a=10,b=20;
//a和b为实际参数
int c=add(a,b);
函数体
花括号{}里的内容即为函数体的内容,这里为函数功能实现的过程,这和以前的写代码没太大区别,以前我们把代码写在main()函数里,现在只是把这些写到别的函数里。
函数的返回值
函数的返回值时通过函数中的return语句获得的,return后面的值也可以是一个表达式
1:尽量保证return语句中表达式的值和函数返回类型是同一类型
2:如果函数返回的类型和return语句中表达式的值不一致,则以函数返回类型为准,即函数返回类型决定返回值的类型,对数值型数据,可以自动进行类型转换。如果无法转换,会报错。
头文件作用
1、函数、变量的声明
2、系统库的调用
#pragma once //只加载一次
//声明系统库
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//声明变量
extern int aaa;
//声明函数
extern int add(int a,int b);