第四章函数和程序结构 本章的主要内容包括: ◆C语言函数的概念,如何调用C提供的 库函数,如何自己来定义函数,并调用 这些函数。中的数据表示 ◆多文件组成C程序的方法 ◆变量生存期作用域 ◆C语言的数学函数。 回首页
本章的主要内容包括: C语言函数的概念,如何调用C提供的 库函数,如何自己来定义函数,并调用 这些函数。中的数据表示 多文件组成C程序的方法 变量生存期作用域 C语言的数学函数。 第四章 函数和程序结构 回首页
4.1概述 问题:(1)程序越来越长。难于理解且可读性下降 (2)重复代码增多,某段程序可能被执行多次。 (3)某一问题中的代码,无法在其它同类问题中再用。 必须重复原来的设计编码过程。 函数是一种机制,能够有效地分解复杂的描述,控制程序规模和 复杂性。需要抽象成函数的程序段 (1)功能独立、具有独立逻辑意义的程序段 (2)重复出现的代码段 函数机制提供的好处: (1)函数可以被多次调用,减少程序长度,保持函数意义的一致性 (2)增加程序可读性。 (3)模块化、结构化更强。 两种观点 从函数外部调用者的角度 从函数内部实现者的角度
问题:(1)程序越来越长。难于理解且可读性下降。 (2)重复代码增多,某段程序可能被执行多次。 (3)某一问题中的代码,无法在其它同类问题中再用。 必须重复原来的设计编码过程。 函数是一种机制,能够有效地分解复杂的描述,控制程序规模和 复杂性。需要抽象成函数的程序段: (1)功能独立、具有独立逻辑意义的程序段 (2)重复出现的代码段 函数机制提供的好处: (1)函数可以被多次调用,减少程序长度,保持函数意义的一致性。 (2)增加程序可读性。 (3)模块化、结构化更强。 两种观点: 从函数外部调用者的角度。 从函数内部实现者的角度。 4.1概述
4.2库函数 C程序中调用库函数需要两步: ●1.使用 include命令指出关于库函数的相关定义和说明。 include 命令必须以“#开头,系统提供的头文件以.h作为文件后缀, 文件名用一队尖括号◇>或一对双撇号””括起来。# include 开头的程序行不是C语句,末尾不加 号。 2.调用标准库函数 调用库函数的形式为 函数名(参数表) (1)表达式中调用:函数是表达式的一个运算对象 如y=z*sin(x)+0.5; (2)作为独立语句:可看作表达式语句 如 printf(%dn,a)
C 程序中调用库函数需要两步: 1.使用include命令指出关于库函数的相关定义和说明。include 命令必须以“#”开头,系统提供的头文件以.h作为文件后缀, 文件名用一队尖括号<>或一对双撇号””括起来。# include 开头的程序行不是C语句,末尾不加“ ; ”号。 2.调用标准库函数 调用库函数的形式为: 函数名(参数表) (1)表达式中调用:函数是表达式的一个运算对象。 如 y = z*sin(x)+0.5; (2)作为独立语句:可看作表达式语句 如 printf(“%d\n”,a); 4.2 库函数
4.3函数定义 C语言中定义函数的一般形式为: 函数返回值类型名函数名(类型名形参1,类型名形参2…) /米头部*/ 说明部分/*函数体* 语句部分 return语句的形式如下 return表达式;或 return(表达式);或 return; return的作用:退出函数,并带回函数值
C语言中定义函数的一般形式为: 函数返回值类型名 函数名(类型名 形参1,类型名 形参2…) /* 头部 */ { 说明部分 /* 函数体*/ 语句部分 } return语句的形式如下: return 表达式; 或 return (表达式);或 return ; return的作用:退出函数,并带回函数值。 4.3 函数定义
4.4函数的调用和说明 4.4.1函数的调用 函数调用的形式为 函数名(实际参数列表) 调用函数时要注意以下几点 (1)调用名字必须与定义名字完全一致 (2)实参个数与形参个数一致,类型一致,如不匹配,进行自动 转换,不兼容的赋值转换(某些类型之间不能进行赋值,如指 针和浮点类型之间)并不给出错信息,程序继续运行,但结果 不正确。 (3)可以嵌套调用。如a函数调用b函数,b函数中又调用c函数 C语言规定所有的函数都是互相平行、独立的。不容许嵌套定义 (在一个函数的定义中,包含另一个函数的完整定义),但可 以嵌套调用
4.4.1 函数的调用 函数调用的形式为: 函数名(实际参数列表) 调用函数时要注意以下几点: (1)调用名字必须与定义名字完全一致。 (2)实参个数与形参个数一致,类型一致,如不匹配,进行自动 转换,不兼容的赋值转换(某些类型之间不能进行赋值,如指 针和浮点类型之间)并不给出错信息,程序继续运行,但结果 不正确。 (3)可以嵌套调用。如a函数调用b函数,b函数中又调用c函数。 C语言规定所有的函数都是互相平行、独立的。不容许嵌套定义 (在一个函数的定义中,包含另一个函数的完整定义),但可 以嵌套调用。 4.4 函数的调用和说明