首页 / 软件开发 / C语言 / C语言函数菜鸟问与答
C语言函数菜鸟问与答2010-10-071、什么是函数在C语言中,完成一个特定任务的程序段、子程序称作函数,在一个完整的C程序中,通常是由很多个函数组成的,每一个函数完成其指定的任务。2、什么是函数原型一个函数有函数名、函数的返回值及返回值的类型、函数的参数及参数的类型。对函数的所有这些特征予以描述称作函数的原型。函数原型一般放在整个程序文件的开始部分(内部函数)。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件必须包含这个头文件。3、什么是函数的返回值当一个函数执行完之后传递给调用函数一个值,称为返回值。是否需要返回一个值给调用函数,具体情况视程序中的需要而定,有时根本就不需要返回一个值给调用函数。4、为什么要说明函数的原型函数原型能告诉编译程序一个函数接受什么样的参数,将返回什么样的返回值,这样编译程序就能检查对函数的调用是否正确,是否存在错误的类型转换。例:int some_func(int,char *,long);编译程序应会检查所有对该函数的调用(包括该函数的定义)是否使用了三个参数并且返回一个int类型的值。如果编译程序发现函数的调用或定义与函数原型不匹配,编译程序应会报告出错或警告信息。例如对上述函数原型来说,当编译程序检查以下语句时,就会报告出错或警告消息:x=some_func(1); /*参数个数少*/x=some_func("HELLO!",1,"DUDE!"); /*参数类型错误*/x=some_func(1,str,2879,"T"); /*参数太多*/下面的函数调用同样是不正确的,因为函数some_func()的返回值不是一个long *类型的值。lValue=some_func(1,str,2879); /*函数返回值应该是int而不是long型。*/同样编译程序还能检查函数的定义(或函数体)是否与函数原型匹配。例如当编译程序检查以下函数定义时,应会报告出错或警告信息:int some_func(char * string,,long lValue,int iValue) /*参数的位置不对*/总之,在源文件中说明函数原型提供了一种检查函数是否被正确引用的机制。目前许多流行的编译程序都会检查被引用的函数的原型是否已在源文件中说明过,如果没有,就会发出警告信息。