C语言中,函数的作用相当于其他高级语言中的子程序,编写程序时,常常将一些常用的功能模块编写成函数,供其他程序调用。函数的优点很多,一方面可以减少重复编写程序的工作量,另一方面方便阅读程序
函数概述
C语言源程序是由函数组成的,一个程序往往由多个函数组成。函数是程序实现模块编程的基本单元,一般为了完成某一特定的功能,相当于其他语言中的子程序。一个较大程序的各项功能都是由其各个子程序共同完成的,同样可以说c程序的全部工作都是由各种各样的函数完成的,所以也把C语言称为函数式语言。由于采用了函数模块式的结构,C语言易实现结构化程序设计使程序的层次结构清晰,便于程序的编写、阅读、调试。
⑴从函数的定义的角度来看,在C语言函数中函数分为两种,一种是库函数,另一种是用户自定义函数
库函数:由c系统提供,用户无需要定义,在调用函数之前也不用在程序中进行类型说明,只需要,在程序前包含有该函数原型的头文件,即可在程序中直接调用。比如使用输入输出函数scanf和printf函数,应该在程序开始部分包含stdio.h 头文件。又如调用字符串处理函数,strlen,strcmp函数时,也应在程序开头部分包含string.h头文件
例子
计算任意两个整数的积
上述mul函数就是用户自定义函数,它要实现的功能就是计算出两数相乘的结果
⑵从函数的形式上看,函数分为有参函数和无参函数两种
有参函数:在调用函数时,在主调函数和被调函数之间有数据传递。例子mul函数就是有参数函数,在主调函数main和被调函数mul之间传递的数据就是a和b。
无参函数:同有参函数相反,即调用无参函数时,主调函数并不将数据传递给被调用函数,
例子2输出特殊函数
注意自定义函数要先声明再使用
⑶C语言的函数兼有其他语言中的函数和过程两种功能,从这个角度来看,又可把函数分为有返回值函数和无返回值函数两种
有返回值函数:被调用执行完后将向调用者返回一个执行结果,成为函数返回值。如果数学函数即属于此类函数。由用户定义的这种要返回函数值的函数,必须在函数定义和函数声明中明确返回值类型。
无返回值函数:用于完成某项特定的处理任务,执行完成后不向调用者返回函数值。这类函数类似于其他语言中的过程。由于函数无须返回值,用户在定义此类函数时可指定其返回为“空类型”,空类型的说明符为void
⑷每个程序中都有main函数。Main函数是系统定义的;c程序的执行从main函数开始,在调用完其他函数后流程返回到main函数,在main函数中结束整个程序的运行。
⑸c程序中的所有函数都是平行的,即在定义函数时是相互独立的,在一个函数中不能嵌套定义另一个函数;函数间可以相互调用,但main函数是不能被调用的。
⑹C语言提供了极为丰富的库函数,这些库函数又可从功能的角度进行如下分类
①I/O函数:用于完成输入/输出功能。
②数学函数;用于数学计算。
③时间转换和操作函数:用于日期、时间转换操作
④字符屏幕和图形功能函数:用于实现字符屏幕管理和各种图形绘制功能。
⑤字符串函数:用于字符串操作和处理
⑥目录路径函数:用于文件目录和路径操作
⑦动态地址函数:用于从自由内存区中分配所需地址空间
⑧接口函数: 用于与操作系统最内层连接
⑨内存函数:用于内存管理、读取等操作
⑩过程控制函数:用于控制程序执行、终止等
⑪:其他函数:这些函数不能简单地归属为某一类,但这些函数都各具功能