2.6 多个函数
如何把自己的函数加入程序中。
//* two_func.c -- a program using two functions in one file */
#include <stdio.h>
void butler(void); /* ANSI/ISO C function prototyping */
int main(void)
{
printf("I will summon the butler function.\n");
butler();
printf("Yes. Bring me some tea and writeable DVDs.\n");
return 0;
}
void butler(void) /* start of function definition */
{
printf("You rang, sir?\n");
}
/* 输出:
*/
butler函数在程序中出现了3次。第1次是函数原型(prototype),告知编译器在程序中要使用该函数;第2次以函数调用(function call)的形式出现在main()中;最后一次出现在函数定义(function definition)中,函数定义即是函数本身的源代码。
C90标准增加了函数原型。函数原型是一种声明形式,告知编译器正在使用某函数,因此函数原型也被称为函数声明(function declaration)。函数原型还指明了函数的属性(包括函数的返回类型,参数类型)。butler参数中的单词void的意思是“空的”,而不是“无效”。
早期的C语言支持一种更简单的函数声明,只需指定返回类型,不用描述参数:
void bulter();
在main()中调用了bulter()很简单,写出函数名和圆括号即可。
bulter()函数的定义包含函数头和用花括号括起来的函数体。函数头重述了函数原型的信息:bulter()不带任何参数,且没有返回值。
和何时调用bulter()函数取决于它在main()中被调用的位置,而不是bulter()的定义在文件中的位置。记住,无论main()在程序文件中处于什么位置,所有的C程序都从main()开始执行。但是,C的惯例是把main()放在开头,因为它提供了程序的基本框架。
C标准建议,要为程序中用到的所有函数提供函数原型。标准include文件(包含文件)为标准库函数提供了函数原型。