zoukankan      html  css  js  c++  java
  • C04 模块化开发

    目录

    • 模块化开发概述
    • 函数概述
    • 如何使用函数
    • 字符串处理函数
    • 模块化开发特点

      

    模块化开发概述

    概述

    C语言是面向过程的语言,意味着编写C语言程序的时候,我们要像计算机一样思考如何设计程序。

    模块化开发可以实现C语言程序的分工协作、降低开发成本,能够使程序层次更加清晰,便于程序的开发、维护、阅读和调试。

    模块化开发

    模块的定义:可组成系统的、具有某种独立的确定功能的子系统。

    模块化开发:把程序划分成一个一个功能相对独立的子结构。

    本次课程将介绍模块化开发最重要的知识:函数。

    函数概述

    函数的概念

    一个具有独立的、完整功能的程序模块。

    函数的分类

    从用户角度划分:系统函数(库函数)、用户函数(自定义函数)

    系统函数:由系统建立的具有一定功能的函数。例如:库函数printf()、scanf()。

    从函数形式划分:有参函数、无参函数。

    如何使用函数

    函数的定义

    语法结构:

    返回值类型   函数名(形式参数列表){
    
              函数体
    
              (返回语句)
    
    }
    

      

    语法结构说明:

    • 返回值类型:函数执行完成后返回数据类型,可以没有返回值,即void类型。
    • 函数名:函数名通常由动词构成,两个以上单词组成,第一个单词首字母小写,其后单词首字母大写。
    • 形式参数表:为函数提供输入。函数可以没有形式参数列表。
    • 返回语句:即return语句。返回的类型要和函数的返回值类型相同。可以没有return返回语句,此时函数为void类型。

    函数定义示例:

    定义sum函数,用于求两个数之和。

    上机练习

    需求:定义一个函数,用于求两个数的大数。

    分析:

    1、函数的输入是什么?

    2、返回值是什么?

    3、函数的功能?

    定义函数常见问题

    • 函数的类型要和返回值的类型一定要相匹配。
    • return只能返回一个值

    上机练习

    需求:如何实现学生信息管理系统的菜单函数?

    提示:没有输入参数;用户输入选项作为函数的返回值。

    函数的声明

    函数的调用:主调函数和被调函数

    例如:main()是主调函数,menu()是被调函数

    主调函数调用被调函数前,需要对被调函数声明。原因在于编译器需要知道被调函数的返回类型,以便编译器对该返回类型进行处理。

    函数的声明

     

    函数声明的一般形式

    示例:

     

    函数的调用

    1.函数调用的一般形式

     

    示例:

     

    2.函数参与运算

    函数作为变量处理,参与表达式运算

    函数实参

     

    3.函数调用注意点

    • 无论函数是否带参,被调用时,函数名后都要有括号。
    • 主调函数传递给被调函数的参数个数必须一致,类型必须兼容。
    • 一个函数最多只有一个返回值。

    上机练习

    需求:如何实现学生信息管理系统的菜单函数的调用?

      

    4.形参和实参的区别

    • 形参指定义函数时候参数的声明
    • 实参指函数调用时传递给函数的实际值
    • 形参只有被调用时才分配确定的值,称为实参
    • 形参和实参的类型必须相同,数量相同

    问题:如何求三个数中的最大值?

     

    函数的嵌套调用

    •  C语言不允许进行嵌套函数定义。
    • 运行在一个函数的定义中出现另一个函数的调用。
    • 示例:

    • 实际编程规范:函数嵌套不要超过三层。
    • 函数嵌套调用的例子:

      

    上机练习

    需求描述:

    同一项目中不同文件中的函数调用

    只要在声明函数的时候添加extern声明即可

     

    系统字符串函数

    专项课程。

    模块化开发特点

    使用函数时注意问题

    • 使用参数一般不要超过5个
    • 函数入口处需要对参数检查
    • 尽量一个出口,返回类型确认
    • 控制函数的规模,100行代码以内
    • 函数嵌套深度不要太深,不要超过3层
    • 返回错误信息应明确

    模块化程序设计特点

    • 模块相对独立,功能单一,可混合编写也可以独立编写调试
    • 可以团队开发,缩短开发周期
    • 开发出的模块,可在不同的应用程序中多次使用,减少重复劳动,提高开发效率
    • 测试,更新以模块为单位进行而不会影响其他模块。
  • 相关阅读:
    用nginx解决前端跨域问题
    vue中router-link的详细用法
    leetcode 148 排序链表
    leetcode 146 LRU缓存机制
    leetcode 101 对称二叉树
    leetcode 84 柱状图中最大的矩形
    leetcode76 最小覆盖子串
    C++ map, unordered_map
    python随机函数
    丑数
  • 原文地址:https://www.cnblogs.com/rask/p/10171572.html
Copyright © 2011-2022 走看看