第7章_用函数实现模块化程序设计_[谭浩强_C程序

发布时间:2021-06-11

问题: 如果程序的功能比较多,规模比较大,把所有代 码都写在main函数中,就会使主函数变得庞杂、 头绪不清,阅读和维护变得困难 有时程序中要多次实现某一功能,就需要多次重 复编写实现此功能的程序代码,这使程序冗长, 不精炼

解决的方法:模块化程序设计的思路 “组装” 事先编好一批实现各种不同功能的函数 每一个函数用来实现一个特定的功能 函数的名字应反映其代表的功能 把它们保存在函数库中,需要时直接用

第7章 用函数实现模块化程序设计

C程序可由一个主函数和若干个其他函数构成

主函数调用其他函数,其他函数也可以互相调用 同一个函数可以被一个或多个函数调用任意多次

main

ad e f e

bg h

ci

可以使用库函数

可以使用自己编写的函数 在程序设计中要善于利用函数,可以减少 重复编写程序段的工作量,同时可以方便 地实现模块化的程序设计

例7.1 输出以下的结果,用函数调用实现。

******************How do you do!

******************

解题思路: 在输出的文字上下分别有一行“*”号,显然不 必重复写这段代码,用一个函数print_star来 实现输出一行“*”号的功能。 再写一个print_message函数来输出中间一 行文字信息

用主函数分别调用这两个函数

#include <stdio.h> 声明函数 int main() { void print_star(); void print_message(); 调用函数 print_star(); print_message(); print_star(); 定义函数 return 0; } void print_star() { printf(“******************\n”); } void print_message() { printf(“ How do you do!\n”); }

#include <stdio.h> int main() { void print_star(); void print_message(); print_star(); print_message(); print_star(); return 0; } void print_star() { printf(“******************\n”); } void print_message() { printf(“ How do you do!\n”); }

C语言要求,在程序中用到的所有函数, 必须“先声明,再定义,后使用”

7.2 怎样定义函数 函数名字、函数返回值类型、函数实现 的功能以及参数的个数与类型 函数名字——以便以后按名调用

函数类型——函数返回值的类型 函数参数的名字和类型——以便在调用 函数时向它们传递数据 函数的功能——函数的具体实现

定义函数的方法1.定义无参函数

函数名后面的括号中是空的,没有任何参数类型名 函数名()

类型名 函数名(void){

{函数体 }

函数体}

2.定义有参函数类型名 函数名(形式参数表列)

{函数体 }

3. 定义空函数:函数体是空的类型名 函数名( ){ }

在编写程序的开始阶段,先用空函数占 住一个位置,只是这些函数暂时还未编 写好,这样做,以后扩充

新功能方便, 对程序结构影响不大。

7.3 调用函数定义函数的目的是为了调用函数。

7.3.1函数调用的形式 函数调用的一般形式为:

函数名(实参表列) 如果是调用无参函数,则“实参表列” 可以没有,但括号不能省略 如果实参表列包含多个实参,则各参数 间用逗号隔开

按函数调用在程序中出现的形式和位置 来分,可以有以下3种函数调用方式:

1. 函数调用语句 把函数调用单独作为一个语句

如printf_star(); 这时不要求函数带回值,只要求函数完 成一定的操作

2. 函数表达式

函数调用出现在另一个表达式中如c=max(a,b);

这时要求函数带回一个确定的值以参加 表达式的运算

3. 函数参数 函数调用作为另一函数调用时的实参 如m=max(a,max(b,c)); 其中max(b,c)是一次函数调用,它的 值作为max另一次调用的实参

实参和形参间的数据传递 在调用有参函数时,主调函数和被调用函 数之间有数据传递关系 定义函数时函数名后面的变量名称为“形 式参数”(简称“形参”) 主调函数中调用一个函数时,函数名后面 参数称为“实际参数”(简称“实参”)

第7章_用函数实现模块化程序设计_[谭浩强_C程序.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219