复习函数
函数是完成特定任务的独立程序代码单元。语法规则定义了函数的结构和使用方式。
创建并使用简单的函数
创建一个在一行打印40个星号的函数,并在一个答应表头的程序中使用该函数
//letheadl.c
#include<stdio.h>
#define NAME "GIGATHINK,INC"
#define ADDRESS "101 MEGABUCK Plaza"
#define PLACE"Megapolis, CA 94904"
#define WIDTH 40
void starbar(void); //函数原型
int main(void)
{
starbar();
printf("%s\n", NAME);
printf("%s\n", ADDRESS);
printf("%s\n", PLACE);
starbar(); //使用函数
return 0;
}
void starbar(void) //定义函数
{
int count;
for (count = 1; count <= WIDTH; count++)
putchar('*');
putchar('\n');
}
分析程序
- 该程序在3出使用了starbar标识符:函数原型(function protopype)告诉编译器starbar()的类型;函数调用表明此处执行函数;函数定义明确的指出了函数要做什么。
- 函数和变量一样,有多中类型。任何程序在使用函数之前都要申明该函数的类型。如上述程序中的函数模型 void starbar(void);圆括号表明starbar是一个函数名,第一个void是函数类型,void类型表明函数没有返回值,第二个在原括号中,表明该函数不带参数,不是定义函数。
- 一般而言,函数原型指明了函数的返回值类型,这些信息称为函数的签名。
- 程序吧starbar()原型至于main()的前面,当然也可以放在main()里面的声明变量出
- starbar()函数中的变量是局部变量,意思是说该变量只属于starbar()函数,可以在程序中的额其他地方(包括main()中)使用count,这不会引起名称冲突,他们是同名不同变量。
函数参数
定义带参数的函数
函数定义从下面ANSIC风格的函数头开始:
void show_n_char(char ch ,int num)该行告知编译器show_n_char()使用两个参数char 和num。这两个变量是形式参数,,和定义在函数中的变量一样,形式参数也是局部变量,数该函数变量私有。
void dubs(int x,int y,int z ) / /有效函数头
声明带形式参数函数的原型
void show_n_char(char ch,int num);也可以写为void show_n_char(ch , num);
调用带实际参数的函数
在函数调用中,实际参数,提供了num 和ch 的值
实际参数是出现在函数调用圆括号中的表达式。形式参数是函数定义的函数头中声明的变量。调用函数时,创建了声明为形式参数的变量并初始化为实际参数的求值结果。