靳润昭C语言教程讲义 2001年2月17日 82函数定义的一般形式 1.无参函数的定义形式 类型标识符函数名0 声明部分 语句 其中类型标识符和函数名称为函数头。类型标识符指明了本函数的类型,函数的类型实 际上是函数返回值的类型。该类型标识符与前面介绍的各种说明符相同。函数名是由用户 定义的标识符,函数名后有一个空括号,其中无参数,但括号不可少。 仆}中的内容称为函数体。在函数体中声明部分,是对函数体内部所用到的变量的类型说 明 在很多情况下都不要求无参函数有返回值,此时函数类型符可以写为 void 我们可以改写一个函数定义: void Helloo printf ("Hello, world \n") 这里,只把main改为 Hello作为函数名,其余不变。 Hello函数是一个无参函数,当 被其它函数调用时,输出 Hello world字符串 2.有参函数定义的一般形式 类型标识符函数名(形式参数表列) 声明部分 语句 有参函数比无参函数多了一个内容,即形式参数表列。在形参表中给出的参数称为形式 参数,它们可以是各种类型的变量,各参数之间用逗号间隔。在进行函数调用时,主调函数 将赋予这些形式参数实际的值。形参既然是变量,必须在形参表中给出形参的类型说明 例如,定义一个函数,用于求两个数中的大数,可写为: int max(int a, int b if (a>b)return a else return b 第一行说明max函数是一个整型函数,其返回的函数值是一个整数。形参为a,b,均为 整型量。a,b的具体值是由主调函数在调用时传送过来的。在仆}中的函数体内,除形参外没 有使用其它变量,因此只有语句而没有声明部分。在max函数体中的 returm语句是把a(或 b)的值作为函数的值返回给主调函数。有返回值函数中至少应有一个 return语句。 在C程序中,一个函数的定义可以放在任意位置,既可放在主函数main之前,也可放 在main之后 例如: 可把max函数置在main之后,也可以把它放在main之前。修改后的程序如下所示 【例8.1】 第3页靳润昭 C 语言教程讲义 2001 年 2 月 17 日 第3页 8.2 函数定义的一般形式 1. 无参函数的定义形式 类型标识符 函数名() {声明部分 语句 } 其中类型标识符和函数名称为函数头。类型标识符指明了本函数的类型,函数的类型实 际上是函数返回值的类型。 该类型标识符与前面介绍的各种说明符相同。函数名是由用户 定义的标识符,函数名后有一个空括号,其中无参数,但括号不可少。 {}中的内容称为函数体。在函数体中声明部分,是对函数体内部所用到的变量的类型说 明。 在很多情况下都不要求无参函数有返回值,此时函数类型符可以写为 void。 我们可以改写一个函数定义: void Hello() { printf ("Hello,world \n"); } 这里,只把 main 改为 Hello 作为函数名,其余不变。Hello 函数是一个无参函数,当 被其它函数调用时,输出 Hello world 字符串。 2. 有参函数定义的一般形式 类型标识符 函数名(形式参数表列) {声明部分 语句 } 有参函数比无参函数多了一个内容,即形式参数表列。在形参表中给出的参数称为形式 参数,它们可以是各种类型的变量,各参数之间用逗号间隔。在进行函数调用时,主调函数 将赋予这些形式参数实际的值。形参既然是变量,必须在形参表中给出形参的类型说明。 例如,定义一个函数,用于求两个数中的大数,可写为: int max(int a, int b) { if (a>b) return a; else return b; } 第一行说明 max 函数是一个整型函数,其返回的函数值是一个整数。形参为 a,b,均为 整型量。a,b 的具体值是由主调函数在调用时传送过来的。在{}中的函数体内,除形参外没 有使用其它变量,因此只有语句而没有声明部分。在 max 函数体中的 return 语句是把 a(或 b)的值作为函数的值返回给主调函数。有返回值函数中至少应有一个 return 语句。 在C程序中,一个函数的定义可以放在任意位置,既可放在主函数 main 之前,也可放 在 main 之后。 例如: 可把 max 函数置在 main 之后,也可以把它放在 main 之前。修改后的程序如下所示。 【例 8.1】