什么是函数﹖函数是完成特定任务的独立程序代码单元。语法规则定义了函数的结构和使用方式。虽然C中的函数和其他语言中的函数、子程序、过程作用相同,但是细节上略有不同。一些函数执行某些动作,如printf()把数据打印到屏幕上;一些函数找出一个值供程序使用,如 strlen()把指定字符串的长度返回给程序。一般而言,函数可以同时具备以上两种功能。
为什么要使用函数?首先,使用函数可以省去编写重复代码的苦差。如果程序要多次完成某项任务,那么只需编写一个合适的函数,就可以在需要时使用这个函数,或者在不同的程序中使用该函数,就像许多程序中使用putchar ()一样。其次,即使程序只完成某项任务一次,也值得使用函数。因为函数让程序更加模块化,从而提高了程序代码的可读性,更方便后期修改、完善。
如何了解函数?首先要知道如何正确地定义函数、如何调用函数和如何建立函数间的通信。
创建一个再一行打印40个星号的函数,并在一个打印表头的程序中使用该函数。
编译运行:
分析程序:
(1)程序在3处使用了starbar标识符:函数原型告诉编译器函数starbar()的类型;函数调用表明在此处执行函数;函数定义明确地指出定了函数要做什么。
(2)函数和变量一样,有多种类型。任何程序在使用函数之前都要声明该函数得类型。因此,在main()函数定义的前面出现了下面的ANSI C风格的函数原型:
void starbar(void);
圆括号表明starbar是一个函数名。第一个void是函数类型,void类型表明函数没有返回值。第二个void(在圆括号中)表明该函数不带参数。分号表明这是在声明函数,不是定义函数。也就是说,着行声明了程序将使用一个名为starbar()、没有返回值、没有参数的函数,并告诉编译器在别处查找该函数的定义。
(3)一般而言,函数原型指明了函数的返回值类型和函数接受的参数类型。这些信息称为该函数的签名。对于starbar()函数而言,其签名是该函数没有返回值,没有参数。
(4)程序把starbar()原型置于main()的前面。也可以放在main()里面的声明变量处。放在哪个位置都行。
(5)在main()中,执行到下面的语句时调用了starbar()函数:
starbar();