云计算百科
云计算领域专业知识百科平台

函数编程:高效复用与模块化设计

函数的作用

  • 避免代码重复,提高复用性
  • 实现模块化,将复杂问题分解为功能单一的小模块
  • 实现低耦合、高内聚的设计原则
  • 1. 函数定义

    定义语法:

    返回类型 函数名(数据类型 参数1, 数据类型 参数2, …) {
    // 函数体
    return 表达式;
    }

    说明:

    • 返回值类型:可以是int、long、double、float、char或void(表示不返回数据),但不能返回数组
    • 返回值用途:
      • 表示函数调用状态(0成功/1失败)
      • 返回计算结果
    • 函数名:遵循标识符规则(字母、数字、_,不能数字开头),应见名知意
    • 参数:用于模块间交互,多个参数用逗号分隔,必须指定数据类型
    • 默认返回类型为int

    int compareTwoNum(int a, int b) {
    if(a > b) {
    printf("num1 > num2\\n");
    } else {
    printf("num1 <= num2\\n");
    }
    return 0;
    }

    2. 函数调用

    调用前需先声明函数:

    int compareTwoNum(int a, int b); // 声明放在.h头文件中
    int show();

    调用方式:

    • 使用函数调用运算符()
    • 参数类型和数量必须匹配,可以是常量、变量或表达式
    • 调用时程序跳转到函数体执行,执行完毕后返回调用处
    • 函数调用是表达式,具有类型和值(由return返回)

    show() + 1;

    3. 变量作用域与生命周期

    作用域

    • 局部变量:
      • 定义在函数内部或{}块中
      • 作用域为离定义最近的大括号范围
      • 内层同名变量会遮蔽外层变量
    • 全局变量:
      • 可在整个工程中访问
      • 未初始化时默认值为0

    生命周期

    • 局部变量:
      • 从定义处开始,到所在函数/代码块结束时回收
    • 全局变量:
      • 从程序开始运行创建,到程序结束时回收

    4. 存储类型

    类型说明
    auto 默认的局部变量(存储在栈区),可省略
    register 建议将变量存储在CPU寄存器中
    extern 用于多文件编程,声明外部定义的变量或函数
    static 静态变量(存储在数据区),具有全局生命周期但受作用域限制,默认初始化为0

    内存布局:

    • 代码段:只读的程序代码
    • 数据段:全局变量和static变量,程序启动时创建
    • 堆空间:手动申请/释放(malloc/free),占内存大部分空间
    • 共享库:只读的库函数实现
    • 栈:存储局部变量、函数参数和返回地址,自动管理(约8MB)
    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 函数编程:高效复用与模块化设计
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!