C语言辅导:解答之函数

文章作者 100test 发表时间 2007:10:24 13:14:54
来源 100Test.Com百考试题网


函数是C语言的基本构件,要成为一个优秀的程序员,必须很好地掌握函数的编写方法和使用方法。本章将集中讨论与函数有关的问题,例如什么时候说明函数,怎样说明函数,使用函数的种种技巧,等等。
在阅读本章时,请回忆你曾编写过的函数,看看你是否已尽可能提高了这些函数的效率.如果没有,请应用本章所介绍的一些技术,以提高你的程序的速度和效率。此外,请注意本章所介绍的一些实用编程技巧,其中的一些例子能有效地帮助你提高编写函数的技能。
8. 1 什么时候说明函数?
只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件。例如,如果函数stat_func()只在源文件stat.c中使用,应该这样说明:

/* stat.c */
# include
atatic int atat_func(int,int). /* atatic declaration of atat-funcO */
void main (void).
viod main (void)
{
......
rc=stat_func(1,2).
......
}
/* definition (body) of stat-funcO */
static int stat-funcdnt argl,int arg2)
{
return rc.
}

在上例中,函数stat_func()只在源文件stat.c中使用,因此它的原型(或说明)在源文件stat.c以外是不可见的,为了避免与其它源文件中可能出现的同名函数发生冲突,应该将其说明为内部函数。
在下例中,函数glob_func()在源文件global.c中定义和使用,并且还要在源文件extern,c中使用,因此应该在一个头文件(本例中为proto.h)中说明,而源文件global.c和extern.c
中都应包含这个头文件。

File: proto.h
/* proto.h */
int glob_func(int,int). /* declaration of the glob-funcO function * /

File: global. c
/* global. c */
# include
# include "proto. h" /*include this file for the declaration of
glob_func() */
viod main(void).
viod main (void)
{
rc_glob_func(l,2).
}
/* deHnition (body) of the glob-funcO function */
int glob_func(int argl,int arg2)
{
return rc.
}

File extern. c
/* extin.c */
# include
# include "proto. h" /*include thia file for the declaration of
glob_func() */
void ext_func(void).
void ext_func(void)
{
/* call glob_func(), which ia deHncd in the global, c source file * /
rc=glob_func(10,20).
}

在上例中,在头文件proto.h中说明了函数glob_func(),因此,只要任意一个源文件包含了该头文件,该源文件就包含了对函数glob_func()的说明,这样编译程序就能检查在该源文件中glob_func()函数的参数和返回值是否符合要求。请注意,包含头文件的语句总是出现在源文件中第一条说明函数的语句之前。
请参见;
8.2 为什么要说明函数原型?
8.3 一个函数可以有多少个参数?
8.4 什么是内部函数?
8.2 为什么要说明函数原型?


相关文章


C语言编程常见问题解答之调试
C语言辅导:解答之函数
C语言编程常见问题解答之指针和内存分配
C语言编程常见问题解答之位(bit)和字节(byte)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛