------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
函数是程序实现模块化编程的基本单元,一般是为了完成某一特定的功能,相当于其他语言的子程序。
一个较大程序的各项功能都是由其各个子程序来共同完成的,由于采用了函数模块式的结构,C语言易于实现结构化程序设计。使程序的层次结构清洗,便于程序的编写、阅读、调试。
1、库函数与用户自定义函数
库函数:由C语言系统提供,用户无需定义。在调用库函数时也不必在程序中进行类型声明,只需在程序前包含该函数原型的头文件,即可在程序中直接调用。
用户自定义函数:就是用户自己编写的用来实现特定功能的函数。如下:
#include <stdio.h>
void func1(){
printf("Hello,World!\n");
}
void func2(int num1,int num2){
printf("num1和num2的和是%d\n",num1+num2);
}
int func3(int num1,int num2){
num1=1;
num2=2;
return num1-num2;
}
int main(int argc, const char * argv[]) {
int i = 1,j = 2;
func1();
func2(i, j);
printf("num1和num2的差是%d\n",func3(i, j));
return 0;
}
2、有参函数和无参函数
有参函数:即在调用函数时,在主调函数和被调函数之间有数据传递。func2和func3就是有参函数,主调函数与被调函数之间有数据传递。
无参函数:同有参函数相反,即调用无参函数时,主调函数并不将数据传送给调用函数。fun1就是无参函数,主调函数并不传递数据给被调函数,但是被调函数可以打印数据。
3、有返回值函数和无返回值的函数
C语言的函数兼有其他语言中的函数和过程两种功能,从这个角度看,又可把函数分为有返回值函数和无返回值函数两种。
有返回值函数:被调用执行完后将向调用者返回一个执行结果,称为函数返回值。func3属于有返回值类型。
无返回值函数:用于完成某项特定的处理任务,执行完成后不向调用者返回函数值。func1和func2不返回值,但是会打印数据。
4、main()函数
在上述代码中有一个main()函数,这个main()函数是由系统预定义的。C程序的执行从main()函数开始,在调用完其他函数后流程返回到main()函数,在main()函数中结束整个程序的运行。
C程序中所用函数都是平行的,即在定义函数时是相互独立的。在一个函数中不能嵌套定义另一个函数,但是函数间可以相互调用(main()函数不能被调用)。
函数调用的基本方式主要有以下3种:
(1)函数语句。把函数调用作为一条语句。这样的韩素调用方式,只要求函数完成一定的操作,不需要返回值。
(2)函数表达式。函数调用出现在一个表达式中,这种调用称作函数表达式调用。此时调用的函数需要具有函数的返回值,这个函数的返回值需要残余表达式的计算。
(3)函数参数。函数调用的另外一种方式是可以作为另一个函数的参数调用。