在c语言中,除了主函数外,对于用户定义的函数遵循“先定义,后使用”的规则。凡是未在调用前定义的函数,c编译程序都默认函数的返回值为int类型。对于返回值为其他类型的函数,若把函数的定义放在调用之后,应该在调用之前对函数进行说明(或称为函数原型说明),函数说明的一般形式如下:
  类型名函数名(参数类型l,参数类型2,……)如double add(double,double)。也可采用下面的形式:类型名  函数名(参数类型l参数名1,参数类型2参数名2,……)
  如double add(double P,double q)。此处的参数名完全是虚设的,它们可以是任意的用户标识符,既不必与函数首部中的形参名一致,又可以与程序中的任意用户标识符同名,实际上,参数名可以省略。函数说明语句中的类型名必须与函数返回值的类型一致。
  函数说明可以是一条独立的说明语句,如:double add(double,double);
  也可以与普通变量一起出现在同一个类型定义语句中,如:
  double X,Y,add(double,double);
  对函数进行说明能使c语言的编译程序在编译时进行有效的类型检查。当调用函数时,若实参的类型与形参的类型不能赋值兼容而进行非法转换时,c编译程序将会发现错误并报错;当实参的个数与形参的个数不同时,编译程序也将报错。使用函数说明能及时通知程序员出错的位置,从而保证了程序能正确运行。

当在所有函数的外部、被调用之前说明函数时,在对函数进行说明的语句后面所有位置上都可以对该函数进行调用。
  函数说明也可以放在调用函数内的说明部分,如在main函数内部进行说明,则只能在main函数内部才能识别该函数。