函数的概述
描述
或者能执行某些动作,或者能返回一个值
优点
使程序模块化,利于阅读
#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');
}
ANSI C 的函数声明风格是
void fun(void);
返回类型和形参如果为空那么就写void。
函数的返回值:将return 返回的值赋值给返回类型,
函数的参数:将实参的值赋值给形参
所以函数的返回类型和形参的类型不符合,编译器是不会报错的。这个就是C语言的特色,能走下去就不报错。
ANSI C的函数原型
ANSI C也支持不带参数的函数声明,
声明:
void showChar();
使用
showChar('char');
定义
void showChar()
char ch; //此处定义形参
{
putchar(ch);
}
但是这种写法,在函数调用的时候编译器不会检查参数个数的,容易出错。
一般的声明,也叫函数原型:
void fun(int,int);
void fun(int a,int b);
递归
c语言的函数的是平等的,一个函数可以调用任意其他的函数。这就产生了递归。