zoukankan      html  css  js  c++  java
  • 【C语言入门教程】5.5 实现问题(效率)

    在设计函数时需要遵循一些基本原则,因为影响到函数的执行效率和可用性。函数是代码复用的基础,一个健壮的函数或由函数组成的函数集可以在多个程序中使用。C语言标准库里存放的就是这样的函数,这些函数被放置在头文件中,使用时将它包含在程序内即可。

    5.5.1 参数 和 通用函数

    通用函数 是指能够复用的函数,这一类函数的显著特点是,只使用参数作为接口传递数据。如果一个函数中依赖全局变量访问调用者的数据,在另一个程序中环境改变了,这个函数就无法运行。因此,不应该把函数建立在全局
    变量上,函数所需要的所有数据都因从参数获得。使用参数传递数据除了有助于函数的复用以外,还能提高代码的可读性。

    程序测试 是程序设计中的一个重要步骤,在 C 语言程序设计中,模块测试是针对函数的测试方法。将函数独立于程序外,模拟调用者的所需要传递的各种数据和程序运行时的不同状态,借助GDB 等调试工具检验函数体内的代码是否正常运行,以及函数返回的结构是否符合预期,是一种常用的模块测试方法。函数只有在通过严格的模块测试后,才能称为通用函数。

    5.5.2 效率

    函数是 C 语言的基本构件,所有的程序都是又函数组成。C 语言程序执行的入口是 main 函数,当 main() 函数调用了子函数时,操作系统为子函数在内存中建立一种称为栈的数据结构,将主函数的返回地址和子函数的局部变量保存在栈中。如果子函数再调用另一个子函数,那么依旧是遵循上述原则。建立栈数据结构的系统开销比较大,所以会影响程序的执行效率,特别是在一个函数反复嵌套调用时,如递归调用,如图 9.3 所示。

    因此,函数的调用结构应趋向于扁平的结构,例如主函数调用子函数 A 结束后,再调用子函数 B,如 9.4 所示。

  • 相关阅读:
    归档拷贝LogMiner 和 archived redo log,分析归档日志
    宋体测试液晶屏测试小程序
    宋体方法Unity3d通过苹果和google两种方法加入广告
    代码确认小米官方在线预定——对代码实现的分析
    分区启动Grub2配置详解
    临时表判断sqlite 判断表 或 临时表 是否存在
    解释升级JDeveloper&ADF的版本
    引用字符shell中的引用java教程
    枚举生成MVC3: Bind Enum To DropDownList ?java教程
    能力学习为什么你应聘不上或试用期被开?
  • 原文地址:https://www.cnblogs.com/52php/p/5681471.html
Copyright © 2011-2022 走看看