函數(shù)的概述
描述
或者能執(zhí)行某些動(dòng)作,或者能返回一個(gè)值
優(yōu)點(diǎn)
使程序模塊化,利于閱讀
#include <stdio.h>
#define NAME "GIGATHINK. INC."
#define ADDRESS "101 Megabuck Plaza"
#define PLACE "Megapolis CA 94904"
#define WIDTH 40
void starbar(void); /* 函數(shù)聲明*/
int main(void)
{
starbar(); /*函數(shù)使用*/
printf("%s\n",NAME);
printf("%s\n",ADDRESS);
printf("%s\n",PLACE);
starbar();
return 0;
}
//函數(shù)定義
void starbar(void){
int count;
for (count=1;count<=WIDTH;count++)
{
putchar('*');
}
putchar('\n');
}
ANSI C 的函數(shù)聲明風(fēng)格是
void fun(void);
返回類型和形參如果為空那么就寫void。
函數(shù)的返回值:將return 返回的值賦值給返回類型,
函數(shù)的參數(shù):將實(shí)參的值賦值給形參
所以函數(shù)的返回類型和形參的類型不符合,編譯器是不會(huì)報(bào)錯(cuò)的。這個(gè)就是C語(yǔ)言的特色,能走下去就不報(bào)錯(cuò)。
ANSI C的函數(shù)原型
ANSI C也支持不帶參數(shù)的函數(shù)聲明,
聲明:
void showChar();
使用
showChar('char');
定義
void showChar()
char ch; //此處定義形參
{
putchar(ch);
}
但是這種寫法,在函數(shù)調(diào)用的時(shí)候編譯器不會(huì)檢查參數(shù)個(gè)數(shù)的,容易出錯(cuò)。
一般的聲明,也叫函數(shù)原型:
void fun(int,int);
void fun(int a,int b);
遞歸
c語(yǔ)言的函數(shù)的是平等的,一個(gè)函數(shù)可以調(diào)用任意其他的函數(shù)。這就產(chǎn)生了遞歸。