7.1 为什么要用函数

 

 主要内容:

这段文字主要讲述了为什么要使用函数来进行程序设计,以及函数在程序设计中的重要性和作用。以下是这段文字的主要内容和要点:

### 1. **简化和清晰度**
- 当程序规模较大,功能较多时,如果所有代码都写在主函数中,会使主函数变得庞大和混乱,这会增加阅读和维护的困难。
- 使用函数可以将代码分解成更小、更清晰、更有组织的部分,使得代码更易于理解和维护。

### 2. **避免重复**
- 在程序中,某些功能可能需要多次实现。如果不使用函数,就需要多次重复编写相同的代码,这会使程序变得冗长和不精练。
- 通过使用函数,可以避免代码的重复,提高代码的效率和精确性。

### 3. **模块化程序设计**
- 函数提供了一种“组装”的方法,可以事先创建并存储各种功能的函数,需要时直接调用,类似于组装计算机时直接从仓库中取出预制的部件。
- 这种模块化的设计方法可以简化程序设计过程,提高开发效率。

### 4. **函数库和专用函数**
- 可以创建函数库,存储常用的函数,例如`sin`函数和`abs`函数,直接调用这些函数来实现特定的功能。
- 一些部门或单位还会创建一些专用的函数,以满足特定领域或单位的需求。

### 5. **函数的本质**
- 函数(function)的英文意义包括“函数”和“功能”,即函数是用来实现特定功能的代码块。
- 函数的名字应该反映其功能,每个函数都应该实现一个特定的功能。

### 6. **程序模块和结构**
- 在设计较大的程序时,通常会将其分为多个模块,每个模块包含一个或多个函数。
- 一个C程序通常由一个主函数和多个其他函数构成,主函数调用其他函数,而其他函数也可以互相调用。

### 7. **利用函数**
- 在程序设计中,应该善于利用函数,这不仅可以减少重复编写代码的工作量,还可以更方便地实现模块化的程序设计。

总之,这段文字强调了在程序设计中使用函数的重要性,以及函数如何帮助程序员创建更加模块化、清晰、高效和可维护的代码。

 我的理解:

这段话的核心观点是强调函数在程序设计中的重要性和多样性。下面是对这段话的几个关键点的理解:

### 1. **简化和清晰度**
- **理解**:当一个程序变得庞大和复杂时,将所有的代码都放在一个主函数中会导致代码难以理解和维护。函数允许程序员将代码分解成更小、更专注的部分,使得代码更加清晰、有组织,也更易于理解和维护。

### 2. **避免重复**
- **理解**:在多个地方重复相同的代码是低效和容易出错的。函数允许程序员将重复的代码块封装起来,并在需要的地方调用,这样可以减少代码的重复,提高代码的一致性和可靠性。

### 3. **模块化程序设计**
- **理解**:模块化是软件设计的一种策略,它将程序分解成互相独立、可复用的模块。每个模块都有特定的功能,可以独立于其他模块工作。这种设计方法使得代码更加清晰、灵活和易于维护。

### 4. **函数库和专用函数**
- **理解**:函数库是预先编写好的函数集合,这些函数可以被多个程序调用,以实现常见的功能。专用函数是为满足特定需求而编写的函数。这两者都是实现代码重用和模块化的重要工具。

### 5. **函数的本质**
- **理解**:函数是用来实现特定功能的代码块。函数的名称应该清晰地反映其功能。理解函数的本质有助于更有效地使用函数来解决问题。

### 6. **程序模块和结构**
- **理解**:一个大型的程序通常由多个模块组成,每个模块都包含一个或多个函数。这种结构使得程序更加有组织,也更容易理解和维护。

### 7. **利用函数**
- **理解**:善于利用函数是高效程序设计的关键。通过利用函数,程序员可以减少重复的工作,更容易实现模块化设计,从而创建出更加清晰、可维护的代码。

总之,这段话强调了函数在简化代码、提高代码重用性、实现模块化设计以及提高代码可维护性方面的重要作用。理解这些概念对于学习和掌握程序设计是非常重要的。

 几点说明:

这段文字详细解释了C程序的结构、编译、执行和函数的使用。以下是这段文字的主要内容和要点:

### 1. **C程序的结构**
- C程序由一个或多个程序模块组成,每个模块是一个源程序文件。这种结构有助于分别编写和编译,提高调试效率。一个源文件可以被多个C程序共用。

### 2. **编译单位**
- 源程序文件是编译的基本单位,包含一个或多个函数以及其他相关内容,如指令、数据声明与定义等。编译是以源文件为单位进行的,而不是以函数为单位。

### 3. **程序的执行**
- C程序的执行从`main`函数开始。如果`main`函数中调用了其他函数,执行流程会在调用结束后返回到`main`函数,并在`main`函数中结束整个程序的运行。

### 4. **函数的独立性**
- 所有函数都是平行和独立的,不从属于其他函数。函数不能嵌套定义,但可以互相调用。`main`函数是特殊的,它是被操作系统调用的,其他函数不能调用`main`函数。

### 5. **函数的种类**
- 从用户的角度看,函数分为库函数和用户定义的函数。库函数由系统提供,用户可以直接使用。用户定义的函数是为了满足特定需求而创建的。

### 6. **函数的形式**
- 函数可以分为无参函数和有参函数。无参函数不接受参数,一般用来执行指定的操作,可以有或没有返回值。有参函数接受参数,通常会返回一个值供调用者使用。

### 7. **参数和返回值**
- 无参函数不接受任何参数,一般用来执行一组特定的操作,例如输出一行字符。有参函数接受一个或多个参数,并且通常会返回一个值,这个值的类型应该与函数定义的类型相同。

### 总结
这段文字详细阐述了C程序的基本结构和组成,以及函数的种类、定义、调用和执行流程。这为理解C程序的组织和执行提供了基础知识,也为更深入地学习和理解函数的使用和特性奠定了基础。

 

 总结:

7.1这一节主要讨论了函数在C程序设计中的重要性和应用,以下是这一节的重点总结:

### 1. **为什么使用函数**
- 函数可以使代码更加模块化和组织化,提高代码的可读性和可维护性。
- 函数可以避免代码的重复,提高编程效率和代码质量。
- 函数允许程序员创建可重用的代码块,简化复杂问题的解决过程。

### 2. **模块化程序设计**
- 通过使用函数,大型程序可以被分解成更小、更易于管理的模块。
- 每个模块可以独立开发、测试和维护,提高开发的灵活性和效率。

### 3. **函数库和用户定义的函数**
- 函数库中包含了系统提供的、预定义的函数,用户可以直接调用这些函数来实现常见功能。
- 用户还可以定义自己的函数来满足特定的需求和功能。

### 4. **函数的形式和类型**
- 函数可以是无参函数,也可以是有参函数。
- 无参函数不接受参数,执行一组特定操作;有参函数接受参数,并通常会返回一个值。
- 函数的返回值类型应与定义一致。

### 5. **C程序的结构和编译**
- C程序由一个或多个源程序文件组成,每个文件是一个编译单位,包含一个或多个函数以及相关的指令和数据声明。
- 程序的执行从`main`函数开始,`main`函数可以调用其他函数,所有函数都是平行且独立的。

### 6. **程序的组织和管理**
- 对于大型程序,将不同的模块放在不同的源文件中可以提高代码的组织性和管理性。
- 这种结构有助于分别编写和编译,提高调试和维护的效率。

通过理解这一节的内容,你将更加明白为什么要使用函数,以及如何利用函数来创建结构化、模块化、高效且可维护的C程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/143692.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

04-Zookeeper集群详解

上一篇:03-Zookeeper客户端使用 Zookeeper 集群模式一共有三种类型的角色 Leader: 处理所有的事务请求(写请求),可以处理读请求,集群中只能有一个LeaderFollower:只能处理读请求,同时作为 Le…

【数据库——MySQL】(6)查询(1)

目录 1. 数据库查询1.1 输出项为列名1.2 输出项为表达式1.3 输出内容变换1.4 消除输出项的重复行1.5 聚合函数 2. 查询条件:逻辑条件2.1 比较运算2.2 模式匹配2.3 范围限定2.4 空值判断 3. 分组3.1 基本分组3.2 分组汇总 4. 分组后筛选5. 输出行排序5.1 ORDER BY5.2…

Anchors

这是源代码定义的anchors概念: 实现过程: 假如有一张500500的图片,那么经过第一步深度卷积网络之后(4次池化),最终就会变成一个3232的特征: 在开源代码实现里面: 所以经过卷积完之后…

leetCode 62.不同路径 动态规划 + 空间复杂度优化

62. 不同路径 - 力扣(LeetCode) 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” &#xf…

基于SpringBoot的酒店客房管理系统

基于SpringBoot的酒店管理系统、酒店客房管理系统 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 首页 管理员界面 用户界面 代码展示 <temp…

如何使用docker快速部署MinDoc文档系统

MinDoc是非常优秀的知识分享系统&#xff0c;但是很多刚接触的人会一脸懵逼&#xff0c;而且官方文档写的也并不清晰&#xff0c;所以和大家分享一下快速部署MinDoc的方法。 首先docker环境先自行安装好&#xff0c;这里不再赘述。 拉取docker镜像&#xff1a; docker pull …

MybatisPlus自定义SQL用法

1、功能概述&#xff1f; MybatisPlus框架提供了BaseMapper接口供我们使用&#xff0c;大大的方便了我们的基础开发&#xff0c;但是BaseMapper中提供的方法很多情况下不够用&#xff0c;这个时候我们依旧需要自定义SQL,也就是跟mybatis的用法相同&#xff0c;自定义xml映射文…

lv5 嵌入式开发-8 内存映射

目录 1 内存映射基本使用 1.1 内存映射概念 1.2 内存映射的使用 2 共享内存&#xff08;古老的 System V IPC&#xff09; 2.1 基本概念 2.2 共享内存使用步骤 2.3 共享内存使用 掌握&#xff1a;内存映射概念、内存映射使用、内存映射注意事项、了解SYSTEM V 共享内存概…

nodejs+vue中国非物质文化遗产网站设计与实现elementui

前端页面&#xff1a; 导航栏借鉴下面的 1首页&#xff1a;带有一个全屏轮播图和其他的内容 2咨询页&#xff1a;有关中国非物质文化遗产的一些新闻咨询网站对于记录非遗这种无形的、动态的文化资源有着其他技术无可替代的优势。用户可以在该网站浏览、了解和学习非遗文化&…

uni-app:canvas-绘制图形4(获取画布宽高,根据画布宽高进行图形绘制)

效果 代码 var width ; var height ; const query uni.createSelectorQuery(); //获取宽度 query.select(#firstCanvas).fields({ size: true }, (res) > { width res.width; height res.height; }).exec(); console.log(宽度width); console.log(高…

关于Pod的内存使用率一直很高的问题分析

生产环境中在流量高峰期出现pod内存使用率很高&#xff0c;pod批量重启&#xff0c;错误日志中还有OOM相关信息。 查看堆内存的使用值 Pod使用的内存不能直接在pod中通过top命令查看&#xff0c;这种方式看到的是pod所在node的资源使用情况。想查看pod的资源使用情况需要用ku…

SEO的优化教程(百度SEO的介绍和优化)

百度SEO关键字介绍&#xff1a; 百度SEO关键字是指用户在搜索引擎上输入的词语&#xff0c;是搜索引擎了解网站内容和相关性的重要因素。百度SEO关键字可以分为短尾词、中尾词和长尾词&#xff0c;其中长尾词更具有针对性和精准性&#xff0c;更易于获得高质量的流量。蘑菇号-…

【Matplotlib画图】使用Python Matplotlib画三维的子图

文章目录 1. 代码2. 画图效果写在最后 1. 代码 在matlab转过来&#xff0c;之前一直不知道python的写法&#xff0c;以为是像matlab一样返回一个句柄然后在上面添加元素&#xff1b; 其实是应该先创建一个画布&#xff0c;然后再在上面添加子图&#xff0c;然后再使用返回的句…

解决 MyBatis-Plus 中增加修改时,对应时间的更新问题

问题&#xff1a;在添加修改时&#xff0c;对应的 create_time 与 insert_time 不会随着添加修改而自动的更新时间 第一步&#xff1a;首先在对应的属性上&#xff0c;加上以下注解 如果只添加以下注解&#xff0c;在增加或者修改时&#xff0c;可能对应的 LocalDateTime 会出…

基于微信小程序的公交信息在线查询系统小程序设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能&#xff1a;具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

支付宝支付模块开发

生成二维码 使用Hutool工具类生成二维码 引入对应的依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.5</version> </dependency><dependency><groupId>com.go…

数码产品数码配件无线键盘等出口欧盟CE-RED认证测试办理

数码产品数码配件无线键盘CE-RED认证测试办理 无线产品CE-RED认证进入东欧市场规定&#xff1a; 在通信终端设备和无线产品在这些/地区合法销售之前&#xff0c;必须按照 RED 指令进行测试&#xff0c;并且还必须提供 CE 标志。无线远程控制产品必须符合 RED 指令的 REDEU 要…

华为云HECS云服务器docker环境下安装nginx

前提&#xff1a;有一台华为云服务器。 华为云HECS云服务器&#xff0c;安装docker环境&#xff0c;查看如下文章。 华为云HECS安装docker-CSDN博客 一、拉取镜像 下载最新版Nginx镜像 (其实此命令就等同于 : docker pull nginx:latest ) docker pull nginx查看镜像 dock…

JS对象数组去重

JS对象数组去重 一、数组去重1.使用 new Set()2.使用 indexOf 去重3.使用 includes 去重4.使用 hasOwnProperty5.使用 filter6.使用递归7.利用 Map 数据结构去重8.使用用 reduce includes9.使用 new Set() 的简化 二、对象数组去重1.使用 new Map() 和 filter2.使用reduce3.使…

【JVM】第四篇 垃圾收集器ParNewCMS底层三色标记算法详解

导航 一. 垃圾收集算法详解1. 分代收集算法2. 标记-复制算法3. 标记-清除算法4. 标记-整理算法二. 垃圾收集器详解1. Serial收集器2. Parallel Scavenge收集器3. ParNew收集器4. CMS收集器三. 垃圾收集底层三色标记算法实现原理1. 垃圾收集底层使用三色标记算法的原因?2. 垃圾…