STM32数据手册:函数参数传递分析与程序段解析

需积分: 15 6 下载量 66 浏览量 更新于2024-08-09 收藏 551KB PDF 举报
"通过函数的参数显式传递-stm32数据手册" 本文主要讨论了三种数据传递方式:直接使用`scanf`和`printf`、通过函数参数传递以及通过全局变量传递,并分析了它们的优缺点。此外,还涉及了程序段中语句的执行频度问题以及数据结构和C语言相关知识,包括数据结构的基本概念和抽象数据类型的定义。 首先,直接使用`scanf`和`printf`进行输入输出,这种方式直观易懂,但需要处理复杂的格式控制,错误处理难度较大,一旦出错可能导致系统崩溃。相比之下,通过函数参数传递数据可以提高程序的模块化,减少错误的可能性,因为数据只在函数内部可见,有利于信息的隐藏和封装。然而,全局变量的使用虽然使得数据访问方便,仅需修改变量值,但过多的全局变量会降低代码的可读性和可维护性,因为它们可以在程序的任何地方被修改。 接下来,我们分析了四个程序段中带有前置记号`@`的语句的执行频度: 1. 在第一个程序段中,`@k += 10*i`的执行频度为`n-1`次,因为`while`循环在`i`从1递增到`n-1`时执行。 2. 第二个程序段中,`@k += 10*i`的执行频度也是`n-1`次,尽管使用的是`do-while`循环,但循环体内的语句仍会在`i`从1递增至`n-1`时执行相同次数。 3. 在第三个程序段中,`@k += 10*i`的执行频度比前两个少一次,因为它位于`i++`之后,所以`i`已经增加了一次,因此执行频度为`n-2`次。 4. 最后一个程序段是嵌套循环,`@k++`的执行频度是两层循环的乘积,即`n*(n+1)/2`次。 在数据结构方面,介绍了基本术语,如数据、数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。数据结构是数据元素的组织形式,存储结构则关注如何在计算机内存中表示这些结构。数据类型定义了值的集合和允许对这些值执行的操作,而抽象数据类型更进一步,它包括数据的逻辑结构和定义在这些数据上的操作,但不涉及具体的实现细节。 最后,讨论了如何定义抽象数据类型,例如复数和有理数。复数的抽象数据类型包括实部和虚部,而有理数则由分子和分母组成,且分母非零。这些定义提供了操作这些数据类型的接口,如初始化、销毁、获取和设置元素值,以及检查元素是否按升序排列等。 总结来说,本文涵盖了数据传递方式的选择、程序执行效率分析和数据结构的基础知识,对于理解C语言编程和数据处理有重要价值。