我的c语言学习记录(蓝桥)————模块化程序设计

这篇博客介绍了C语言中的模块化程序设计,通过实例展示了如何使用函数调用来实现输出特定格式的内容。作者讲解了如何声明和定义无参及有参函数,并探讨了函数的调用过程、分类,包括库函数、用户自定义函数、无参和有参函数。还讨论了函数的嵌套调用、递归调用以及数组与函数的关系,提供了多个示例程序来加深理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模块化程序设计

我们通过例子来理解模块化程序设计,要求用函数调用实现输出以下的结果:

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

how do you do!

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

解题思路

在输出的文字上下分别有一行 * 号,显然不必重复写这段代码,用一个函数 printstar 来实现输出一行 * 的功能。再写一个 print_message 函数来输出中间一行文字信息,用主函数分别调用这两个函数即可。创建 9-1.c 文件并输入以下代码:

#include<stdio.h>

#include<string.h>

int main(){

    void printstar();        //声明 printstar 函数

    void print_message();    //声明 print_message 函数

    printstar();            //调用 printstar 函数

    print_message();        //调用 print_message 函数

    printstar();            //调用 printstar 函数

    return 0;

}

void printstar(){    //定义 printstar 函数

    printf("**************\n");

}

void print_message(){    //定义 print_message 函数

    printf("how do you do!\n");

}

输入以下命令编译并运行:

gcc -o 9-1 9-1.c

./9-1

程序运行结果如下:

 

程序分析

printstar  print_message 都是用户自定义的函数名,分别用来输出一排 “*” 号和一行文字信息。在定义这两个函数时指定函数的类型为 void,表示函数无类型,即无函数值,也就是说,执行这两个函数不会返回任何值到 main 函数。

在程序中,定义 printstar  print_message 函数的位置是在 main 函数后面,在这种情况下,应该在 main 函数之前或 main 函数中的开头部分,对以上两个函数进行声明

函数声明的作用是把有关函数的信息(函数名、函数类型、函数参数的个数与类型)通知编译系统,以便于在编译系统对程序进行编译时,在进行到 main 函数调用 printstar  print_message 时知道他们是函数而不是变量或其他对象。

函数的定义

C 语言要求,在程序中用到的所有函数,必须先定义,后使用。例如想用 max 求两个数的最大值。必须先按规范对它进行定义,指定他的名字、函数返回类型、函数实现的功能以及参数的个数和类型,将这些信息通知给编译系统。这样程序执行 max 函数的时,编译系统就会按照定义时所指定的功能去执行。如果事先不定义,编译系统是无从知晓 max 是什么,要实现什么功能的。

对于 C 编译系统提供的库函数,是由编译系统事先定义好的,库文件中包含了对各函数的定义。程序设计者不必自己定义,只需要用 #include 指令把有关的头文件包含到本文件中即可。例如在程序中用到 sqrtfabssin 等数学函数,就必须在文件模块开头写上:#include<math.h>

库函数只提供了最基本、最通用的一些函数,而不可能包括人们在实际应用中所用到的所有函数。我们往往需要自己定义想要用的而库函数并没有提供的函数。

定义无参函数

我们在 9-1.c 中的 printstar  print_message 函数都是无参函数,大家可以看到函数名后的括号中是空的,没有任何参数。

其一般形式为

类型名 函数名(){

    函数体

}

说明:

类型名表示的是返回值的类型,比如 9-1.c 中在定义 printstar <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值