C语言定义函数详解(附带实例)
一个较大的程序一般应分为若干个程序模块,每一个模块用来实现一个特定的功能。一般高级语言中都会涉及子程序,用来实现模块的功能。在 C语言中,子程序的作用是由函数定义的。
提到函数,大家应该会想到数学函数,函数是数学中很重要的一个部分。在 C语言中,函数是构成 C语言程序的基本单元,函数中包含程序的可执行代码。
每个 C语言程序的入口和出口都位于 main() 函数中。编写程序时,并不是将所有内容都放到主函数 main() 中。为了方便规划、组织、编写和调试,一般的做法是将一个程序划分成若干个程序模块,每一个程序模块都能实现一部分功能。这样,不同的程序模块可以由不同的人来编写,从而可以提高软件开发的效率。
也就是说,主函数可以调用其他函数,其他函数之间也可以相互调用。如果在 main() 函数中调用其他函数,这些函数执行完毕之后又会返回到 main() 函数中。通常把这些被调用的函数称为下层函数。
函数调用发生时,立即执行被调用的函数,而调用者则进入等待的状态,直到被调用函数执行完毕。
函数定义的语法格式如下:
对于上面的代码,函数头如下图所示:

图 1 函数头
现在已经了解了定义一个函数应该使用怎样的语法格式。还有如下几种特殊的函数。
① 无参函数也就是没有参数的函数。无参函数的语法格式如下:
② 顾名思义,空函数就是没有任何内容的函数,它也没有什么实际作用。在实际的开发过程中,程序员往往会使用空函数进行占位,等以后再用编好的函数取代它。
空函数的语法格式如下:
声明函数是让编译器知道函数的名称、参数、返回值类型等信息。就像请假一样,一定要告诉上级领导一声,他才知道你为什么没来,这就相当于声明。而定义函数是让编译器知道函数的功能,就像说明请假要做的事情一样。
声明函数的格式如下,包括返回值类型、函数名、参数列表和分号 4 个部分:
虽然这种方式可以不用进行声明,而是直接定义,但是在实际的编程中不推荐使用这种方式。
提到函数,大家应该会想到数学函数,函数是数学中很重要的一个部分。在 C语言中,函数是构成 C语言程序的基本单元,函数中包含程序的可执行代码。
每个 C语言程序的入口和出口都位于 main() 函数中。编写程序时,并不是将所有内容都放到主函数 main() 中。为了方便规划、组织、编写和调试,一般的做法是将一个程序划分成若干个程序模块,每一个程序模块都能实现一部分功能。这样,不同的程序模块可以由不同的人来编写,从而可以提高软件开发的效率。
也就是说,主函数可以调用其他函数,其他函数之间也可以相互调用。如果在 main() 函数中调用其他函数,这些函数执行完毕之后又会返回到 main() 函数中。通常把这些被调用的函数称为下层函数。
函数调用发生时,立即执行被调用的函数,而调用者则进入等待的状态,直到被调用函数执行完毕。
C语言定义函数
在程序中编写函数时,需要让编译器知道函数的功能。定义的函数包括函数头和函数体两部分。1、定义函数的形式
编写程序时,C语言的库函数是可以直接调用的,如 printf() 输出函数。而自定义函数则必须由用户对其进行定义,函数的定义中需包括函数特定的功能,这样函数才能被其他函数调用。函数定义的语法格式如下:
返回值类型 函数名(参数列表) { 函数体(函数实现特定功能的过程); }例如,定义一个函数,代码如下:
int MulTwoNumber(int iNum1, int iNum2) /*函数头部分*/ { /*函数体部分,实现函数的功能*/ int result; /*定义整型变量*/ result = iNum1 * iNum2; /*进行乘法操作*/ return result; /*返回操作结果,结束*/ }下面通过代码来分析函数的两个部分:函数头和函数体。
1)函数头
函数头用来标识函数代码的开始,这是函数的入口处。函数头分成返回值类型、函数名和参数列表 3 个部分。对于上面的代码,函数头如下图所示:

图 1 函数头
2) 函数体
函数体位于函数头的下方,由一对花括号标识,花括号决定了函数体的范围。函数要实现的特定功能都是在函数体部分通过代码语句来设置的,最后通过 return 语句返回实现的结果。现在已经了解了定义一个函数应该使用怎样的语法格式。还有如下几种特殊的函数。
① 无参函数也就是没有参数的函数。无参函数的语法格式如下:
子返回值类型 函数名() { 函数体 }下面通过代码来说明无参函数。例如,使用上面的语法定义一个无参函数,代码如下:
void Show () /*函数头*/ { printf("Nothing is impossible!"); /*显示一条信息*/ }
② 顾名思义,空函数就是没有任何内容的函数,它也没有什么实际作用。在实际的开发过程中,程序员往往会使用空函数进行占位,等以后再用编好的函数取代它。
空函数的语法格式如下:
类型说明符 函数名() { }
2、函数定义和声明
在程序中编写函数时,要先对函数进行声明,再对函数进行定义。声明函数是让编译器知道函数的名称、参数、返回值类型等信息。就像请假一样,一定要告诉上级领导一声,他才知道你为什么没来,这就相当于声明。而定义函数是让编译器知道函数的功能,就像说明请假要做的事情一样。
声明函数的格式如下,包括返回值类型、函数名、参数列表和分号 4 个部分:
返回值类型 函数名(参数列表);
例如,声明一个函数的代码如下:声明时最后要有分号“;”作为语句的结尾。
int ShowNum (int iNumber1, int iNumber2);如果将定义函数的代码放在调用函数的代码之前,就不需要进行函数声明,此时函数的定义就包含了函数的声明。例如下面的代码:

虽然这种方式可以不用进行声明,而是直接定义,但是在实际的编程中不推荐使用这种方式。