函数类型指的是函数返回值的数据类型。允许基 本类型、指针类型、结构类型、联合类型和void 若函数无返回值(无值型函数),类型处放置void 关键字。这种函数只能作为表达式语句调用,函数 体中不能使用带返回值 return语句若函数的执行必 须在某个位置返回,此时仅可以使用不带返回值的 return语句返回。 若函数执行后要返回一个值,则定义函数时必须 在该位置处指定函数返回值的数据类型; 若定义函数时没有指定函数的类型,则函数类型 为int。(注:C99不再支持函数的int獻认类型)。 16
16 指的是函数返回值的数据类型。允许基 本类型、指针类型、结构类型、联合类型和 void 。 若函数无返回值(无值型函数), 类型处放置void 关键字。这种函数只能作为表达式语句调用,函数 体中不能使用带返回值return语句,若函数的执行必 须在某个位置返回,此时仅可以使用不带返回值的 return语句返回。 若函数执行后要返回一个值,则定义函数时必须 在该位置处指定函数返回值的数据类型; 若定义函数时没有指定函数的类型,则函数类型 为int。 (注:C99不再支持函数的int默认类型)。 函数类型
例1 void show n char( char ch, int num) int count for( count =i; count <=num; count++) putchar(ch
17 例1: void show_n_char ( char ch , int num ) { int count ; for ( count = i ; count <= num ; count++ ) putchar ( ch ) ; }
例2 imin(int n, int m) if(n<m) return n 9 else return m g 18
18 例2: imin ( int n , int m ) { if ( n < m ) return n ; else return m ; }
存储类型 若在“存储类型”位置处指定 Estatic关键字,那 么便定义了一个“静态函数 所谓“静态函数”即它的作用域仅限于定义 它的源文件。这样的函数只能由定义它的源文件 中的函数调用,对于同一个程序的其他源文件中 的函数来讲它是不可见的,当然是不可调用的。 static函数的这种局部化特性隐含着在同一个 源程序的其他源文件中定义的函数的名字可以与它 同名,不会产生冲突
19 若在“存储类型” 位置处指定static 关键字,那 么便定义了一个 “静态函数” 。 所谓 “静态函数” 即它的作用域仅限于定义 它的源文件。 这样的函数只能由定义它的源文件 中的函数调用, 对于同一个程序的其他源文件中 的函数来讲它是不可见的,当然是不可调用的。 static 函数的这种局部化特性隐含着在同一个 源程序的其他源文件中定义的函数的名字可以与它 同名, 不会产生冲突。 存储类型
形式参数 指出调用该函数时必须给出的参数,一个函数 的形式参数的多少、顺序没有限制,形式参数之间 用逗号分隔,也可以为空(没有形式参数),此时在 形式参数表中只放一个void,或者为空(括号不能不 写)。 ■形式参数只能是变量名、数组名,且都必须声 明,声明的方法与变量相同 ■形式参数的数据类型可以是基本类型、指针类 型、结构类型和联合类型。 20
20 形式参数 指出调用该函数时必须给出的参数,一个函数 的形式参数的多少、顺序没有限制,形式参数之间 用逗号分隔, 也可以为空(没有形式参数), 此时在 形式参数表中只放一个void , 或者为空(括号不能不 写)。 形式参数只能是 变量名、数组名, 且都必须声 明,声明的方法与变量相同。 形式参数的数据类型可以是 基本类型、指针类 型、结构类型和联合类型