自定义函数(创建函数)
首先,简单介绍一下什么是函数
- 函数是完成特定任务的独立程序代码单元。语法规则定义了函数的结构和使用方式。
- 使用函数可以省去编写重复代码的苦差。函数让程序更加模块化,从而提高程序代码的可读性,更方便后期修改完善。
- 动手编写代码之前要仔细考虑函数应该完成什么任务,以及函数和程序整体之间的关系。
- 了解函数,首先要知道如何正确的定义函数,如何调用函数,如何建立函数之间的通信。
接下来先创建并使用简单函数
#include<stdio.h>
#define NAME "GIGATHINK, INC."
#define ADDRESS "101 Megabuck Plaza"
#define PLACE "Megapolis, CA 94904"
#define WIDTH 40
void strarbar(void); //函数原型
int main()
{
strarbar(); //使用函数
printf("%s\n",NAME);
printf("%s\n",ADDRESS);
printf("%s\n",PLACE);
strarbar();
return 0;
}
void strarbar(void) //定义函数
{
int count;
for(count = 1; count <= WIDTH; count++)
putchar('*');
putchar('\n');
}
分析程序
程序三处使用了starbar标识符:
- 函数原型,函数原型告诉编译器函数starbar()的类型;
- 函数调用,表明在此处执行函数;
- 函数定义,函数定义明确指出了函数要做什么。
- 函数和变量一样,有多种类型。任何程序使用函数之前都要声明函数的类型。因此在main()函数定义的前面出现了void strarbar(void);这样ANSI C风格的函数原型;
- 圆括号表示strbar是一个函数名;
- 第一个void(在圆括号中)表明该函数不带参数;
- 分号表明这是在声明函数,不是定义函数。
- 一般而言,函数原型指明了函数返回值的类型和函数接受的参数类型,这些信息称为该函数的签名。对于starbar()函数而言,其签名是该函数没有返回值,没有参数。
- 在main() 中,执行到strarbar(); 语句时调用了strarbar()函数,当计算机执行到strarbar();时,会找到该函数的定义并执行其中内容。执行完strarbar()中的代码后,计算机返回主调函数,继续执行下一行(本例中,主调函数是main())。
- 程序中starbar()和main()的定义形式相同。首先函数头包括函数类型,函数名和圆括号,接着是左花括号,变量声明,函数表达语句,最后以右花括号结束。
- 注意:函数头中的strarbar()后面没有分号,告诉编译器这是定义starbar(),而不是调用函数或声明函数原型。
- strarbar()函数中的变量count 是局部变量,意思是该变量只属于strarbar()函数,可以在程序中的其他地方(包括main()中)使用count ,这并不会引起冲突,它们是同名的不同变量。