电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

电子发烧友网>嵌入式技术>C函数调用机制与栈帧原理详解

C函数调用机制与栈帧原理详解

收藏

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论

查看更多

相关推荐

C语言函数调用过程中的内存变化解析

相信很多编程新手村的同学们都会有一个疑问:C 语言如何调用函数的呢?局部变量的作用域为什么仅限于函数内?这个调用不是指C 语言上的函数调用的语法,而是在内存的视角下,函数调用过程。本文将从C 语言
2020-12-11 16:21:133432

C语言使用函数调用的知识点

C语言使用函数调用,我们再熟悉不过了,但是函数调用在内存中究竟发生了什么真的清楚吗?只有搞清楚内存里的内幕,才算完全搞懂函数调用
2022-09-07 11:47:55654

Linux内核中系统调用详解

Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用。用户可以通过系统调用命令在自己的应用程序中调用它们。从某种角度来看,系统调用和普通的函数调用非常相似。区别仅仅在于,系统调用由操作系统核心提供,运行于核心态;而普通的函数调用函数库或用户自己提供,运行于用户态。
2023-08-23 10:37:22577

一文详解python调用函数

函数被定义后,本身是不会自动执行的,只有在被调用后,函数才会被执行,得到相应的结果。但是在 Python 中我们要注意一个关键点,就是Python不允许前向引用,即在函数定义之前,不允许调用函数
2023-10-01 10:45:00211

如何查看及更改函数/函数块的调用环境

模块化设计的思想是把一些相似的功能(比如电机控制、阀控制)设计成函数函数块,这样就可以反复调用。其优点是:使程序架构更加清晰,避免重复编写相似功能的代码。不过可能会产生一个疑惑:既然PLC的程序
2023-11-17 09:08:39384

自动初始化机制原理详解

自动初始化机制是指初始化函数不需要被显式调用,只需要在函数定义处通过宏定义的方式进行申明,就会在系统启动过程中被执行。这篇文章就来探索一下其中的奥秘, 简单理解其原理!
2023-12-16 09:33:58329

C 语言回调函数详解

C 语言回调函数详解什么是回调函数? 回调函数,光听名字就比普通函数要高大上一些,那到底什么是回调函数呢?恕我读得书少,没有在那本书上看到关于回调函数的定义。我在百度上搜了一下,发现众说纷纭,有很大
2020-04-08 10:36:25

C函数与汇编函数之间参数及返回值传递方法

任意更改R0~R3寄存器,无需考虑会破坏它们在父函数中保存的数值,返回父函数前无需恢复其值。AAPCS规定,发生函数调用前,由父函数将R0~R3中有用的数据压,然后才能调用函数,以防止父函数R0
2011-09-30 13:34:31

C和汇编是怎样进行函数调用的?

C和汇编是怎样进行函数调用的?分为哪几种情况?
2021-04-27 07:00:13

C语言的函数如何调用

C语言的函数如何调用
2021-10-18 09:06:53

C语言运行时需要和的意义

嵌入式-ARM-学习总结(3):汇编启动,设置调用C语言一、C语言运行时需要和的意义1.2.CPU模式和各种模式下的3.查阅文档并设置指针至合法位置二、汇编程序和C程序互相调用一、C语言
2021-12-20 07:11:56

c语言初始化变量

操作后面有stack清0的代码指令。效率考虑,也不该有这样的指令。 再看test_call函数,很明显,func3和func4调用使用的并不是同一个,因此即便是在func3中对c赋值了54321
2021-03-29 09:25:09

详解Linux内核抢占实现机制

本文详解了Linux内核抢占实现机制。首先介绍了内核抢占和用户抢占的概念和区别,接着分析了不可抢占内核的特点及实时系统中实现内核抢占的必要性。然后分析了禁止内核抢占的情况和内核抢占的时机,最后介绍了实现抢占内核所做的改动以及何时需要重新调度。
2019-08-06 06:16:22

调用mdelay延时导致线程数据被刷怎么解决

在SPI flash的写函数调用rt_thread_mdelay函数,在执行rt_schedule()时,会刷掉线程的数据,导致写入数据不对。用msh测试发现不在线程写flash而直接调用里写
2022-05-05 10:12:18

ARMv8架构中的布局简析

的布局函数调用由连续的组成。每个记录一个函数调用的信息,这些信息包括函数参数,函数变量,函数运行地址。假设函数调用关系是:main()->func1()->func2()原作者:dumpcore
2022-05-13 11:17:32

ARMv8的函数调用是什么意思?调用的内存管理是怎样的

调用解析概念: 任意体系结构的CPU,都设计了一套通用寄存器、状态寄存器及其他控制寄存器,用以维系系统的正常运行。函数调用过程中,CPU一般都需要处理几件事情:保存母函数现场(寄存器值),将被调用
2022-05-13 10:36:15

FreeRTOS调用中断函数时,变量定义位置问题如何解决

问题如下:当系统滴答时钟中断时,会调用xTaskIncrementTick(),请问调用函数时,函数开始几行定义的变量:TCB_t * pxTCB;TickType_t xItemValue
2020-06-10 04:37:15

FreeRTOS中的任务堆栈溢出检测机制

)函数中被调用,也就是在任务上下文切换的时候做检测。从这点可以看出软件检测溢出的方式具有一定的滞后性,需要在任务发生上下文切换时才会进行,任务堆栈溢出时并不能马上检测到问题。任务堆栈溢出检测存在
2021-10-15 13:51:40

Hexagon的软件

位对齐,这主要是为了堆栈指令能够合适的运行 Hexagon提供的是用来保存框架的,这是一种用于保存程序中活跃子程序的状态信息的数据结构(活跃子程序指那些被调用但未返回的程序)。每个框架对应
2018-09-19 17:41:37

Labview调用普通相机的机制是什么?

,我插上USB摄像头后,调用IMAQdx库内的函数,为毛没反应??囧所以想来论坛问下,Labview调用普通相机的机制是什么?想自己找到原因。我的LABVIEW是12版本,摄像头是普通的USB摄像头。
2014-11-30 11:38:36

LwIP协议源码详解

LwIP协议源码详解
2012-08-20 23:17:01

STM32WB产品详解及FUS无线协议升级

STM32WB产品详解及FUS无线协议升级2.4GHz无线双核STM32WB, 采用SoC单芯片设计,支持多协议射频。
2023-09-06 06:35:56

labview调用动态库详解

在labview中,调用动态库详解
2015-07-31 21:47:10

va_start和va_end使用详解

(parm_list,...);这种方式和我们以前认识的不大一样,但我们要记住这是C中一种传参的形式,在后面我们就会用到它。2.函数参数的传递原理  函数参数是以数据结构:的形式存取,从右至左入。  首先是参数
2015-02-10 10:38:06

zigbee协议zb_YsytemReset()函数编译报错?

zigbee协议zb_YsytemReset()函数编译报错?zigbee协议在应用层调用zb_YsytemReset()函数,zb_WriteConfiguration
2016-03-14 10:57:06

【原创】C语言中的动态内存-----内存

作者:蔡琰老师(张飞实战电子高级工程师)C语言程序的动态内存分为内存区域和堆内存区域两种。内存是由编译器管理的,而堆内存是由程序调用具体的库函数管理的。我们今天分析下内存的概念。内存的使用在
2021-07-07 14:18:13

中断服务函数调用机制

其他定义的同名标号(在这里是在c文件中用户自定的中断服务函数)就优先调用其他定义的标号。讲到这里就差不多是整个中断机制了,唯有一点楼组也没明白:DCD定义的数据的地址是怎么精确到中断向量上的,希望各位指点!
2015-01-14 22:48:12

什么是堆?什么是

在嵌入式编程中,是一个很重要的概念,不管是裸机编程还是基于RTOS编程。函数形参、局部变量、函数调用现场的保护及返回地址、中断函数执行前线程保护及中断嵌套的现场的保护都依赖于空间。空间不足
2021-12-22 06:09:46

使用gdb调试实际程序来研究ARM的指令和运行时布局

Standard for the ARM 64-bit Architecture。参考其中的过程调用标准和运行时布局。2. ARMv8 Instruction Set Overview。参考其中的指令概述。3.
2022-05-24 16:31:25

关于C++中的函数重载机制

函数重载是C++的新增机制,是在同一个作用域中能声明定义多个同名字的函数.(我们知道函数的名字是函数代码块的起始地址,这个首地址能够将函数的控制权转移给这个代码块的区域).在定义多个同名函数的时候
2016-10-01 17:18:42

协议介绍

函数。5)本协议可以完成客户机,服务器,UDP客户机,UDP服务器。还可以方便完成DNS客户端功能,PING客户端功能。6)本协议目前在ARM7上测试及设计。由于采用C代码编写。因此在其它的单片机
2015-09-14 08:44:24

协议介绍

,和SOCKET API。以及DNS,PING等直接调用函数。5)本协议可以完成客户机,服务器,UDP客户机,UDP服务器。还可以方便完成DNS客户端功能,PING客户端功能。6)本协议目前在
2015-09-03 15:02:00

协议介绍--TCP/IP

,和SOCKET API。以及DNS,PING等直接调用函数。5)本协议可以完成客户机,服务器,UDP客户机,UDP服务器。还可以方便完成DNS客户端功能,PING客户端功能。6)本协议目前在
2015-09-03 15:03:59

在LabVIEW中调用C语言——调用函数节点

在LabVIEW中调用C语言——调用函数节点学习LabVIEW也有一段时间了,从C语言到LabVIEW的思维转换对我来说,确实比较难,直到现在我依然无法自如地将LabVIEW与C语言自由转化,很多
2013-04-20 09:14:31

如何使用内联函数调用汇编函数

C/C++中调用汇编代码中的函数使用内联函数调用汇编函数C/C++中调用汇编代码中的变量或者常量
2021-04-02 06:57:53

如何去实现汇编和C语言的调用以及的设置

嵌入式知识-ARM裸机-学习笔记(3):实现汇编和C语言的调用以及的设置一、的设置1. C语言运行时需要和的意义C语言运行时(runtime) 需要一定的条件,这些条件由汇编来提供,在普通
2021-12-14 08:34:50

学习杂记(一)c语言

名 3,输入参数 4,返回值 stack frame函数框是层层堆叠的,注意,main函数框是被子函数factorial的框覆盖了,所以称为。每个都放在一个框架中,然后层层堆叠作为
2017-04-12 21:57:00

求蓝牙协议初始化和调度机制资料?

青云NRF51822/NRF52832蓝牙4.x详解第二讲:蓝牙协议初始化和调度机制对应蓝牙协议的初始化一直是大家关注的问题,Nordic的协议如何运行,如何处理成为关键。本文并且通过
2020-06-19 09:00:36

汇编调用C1、用c编写函数

汇编调用C1、用c编写函数 int jc(int n),其功能是返回n!,保存为1c.c,编写汇编程序1s.S,调用jc函数,计算5!,并将结果存入0x20009000处。答案:(1)C语言int jc(int n){int i,ans=1;for(i=1;i
2021-12-20 07:59:23

汇编调用c函数为什么需要设置

,之前的pc值存在lr中),在子程序执行完毕后,再把中的lr值pop出来,赋值给pc,这样就实现了子函数的正确的返回。 2. 传递参数 C语言函数调用时,会传给被调用函数一些参数,对于这些C语言级别参数
2017-07-31 11:11:35

汇编代码中对C函数调用时如何进行参数的传递以及如何从C函数正确返回呢

时参数的传递规则以及如何从函数返回,关于ATPCS的详细内容可以查看ADS1.2 Online Books ——Developer Guide的2.1节。这篇文档要讲的是 汇编代码中对C函数调用时如何进
2022-05-07 10:02:02

用一个实例展示一下Linux内核的入和退过程

1、Linux内核调试方法总结之    和指针可以说是C语言的精髓。是一种特殊的数据结构,在C语言函数调用时,用来保存当前函数的父一级函数底指针,当前函数的局部变量以及被调用
2022-11-04 15:47:03

请问为什么中断模式指针是3072?

ldr sp, =4096@ 设置指针,以下都是C函数调用前需要设好 bldisable_watch_dog@ 关闭WATCHDOG,否则CPU会不断重启msr cpsr_c, #0xd2
2019-04-26 06:17:43

转:第11章 FreeRTOS任务大小确定及其溢出检测

不同的。将如下的几个选项简单的累加就可以得到一个粗略的大小:u 函数的嵌套调用,针对每一级函数用到空间的有如下四项: l 函数局部变量。 l 函数形参,一般情况下函数的形参是直接使用的CPU寄存器
2016-08-28 15:21:10

通过IDA调试一个函数进而展示空间的操作过程

;调用了一个函数,在该位置设置断点进行调试.text:76564B28 STRR0, [SP,#0xD0+var_6C]通过IDA在HEX界面查看这些指令对应的二进制,发现长度都为2个字节,所以该汇编
2022-05-24 17:02:52

高保真胆机制详解

http://115.com/file/be3wripk#高保真胆机制详解.rar
2012-02-14 09:54:39

PICC库函数详解

PICC库函数详解
2006-04-18 20:13:56132

matlab自定义函数调用的方法

matlab自定义函数调用的方法 命令文件/函数文件+ 函数文件 - 多
2007-11-29 13:14:2088

虚拟仪器调用MessageBox函数的实现

虚拟仪器软件设计中以图形化语言LABVIEW为主,但在遇到LABVIEW不易实现的功能时,可通过在LABVIEW中调用其他函数来实现。本文介绍了在LABVIEW中调用Win32 APIMessageBox的方法和配置CLF
2009-09-14 15:07:3623

C++教程之函数的递归调用

C++教程之函数的递归调用 在执行函数 f 的过程中,又要调用 f 函数本身,称为函数的递归调用;形式上:一个正在执行的函数调用了自身;这种递归称之
2010-05-15 18:00:3835

系统调用函数库分析及实例

作为用户我们极少接触系统调用,但是我们熟悉C 语言,对库函数调用并不陌生。C语言支持一系列库函数调用,而事实上,库函数调用是C 语言在较高层次上调用的一种方式,L
2011-06-23 16:46:3446

使用指针调用函数产生 Hard Fault

使用指针调用函数产生 Hard Fault
2015-12-07 17:52:250

函数执行完毕后,如何返回调用处?

函数执行完毕后,如何返回调用处呢?由于该函数可能会被多次调用,且每次调用的地方很可能不一样,这样被调用函数也就不可能知道自己该返回到哪里,因此在调用函数时必须告诉被调用函数应返回到哪里?
2017-09-14 14:27:3116205

Android开发手册—API函数详解

Android开发手册—API函数详解
2017-10-17 09:01:0513

高效的C编程之函数调用

14.9 函数调用 函数设计的基本原则是使其函数体尽量的小。这样编译器可以对函数做更多的优化。 14.9.1 减少函数调用开销 ARM上的函数调用开销比非RISC体系结构上的调用开销小: 调用返回
2017-10-17 16:49:586

基于Android开发手册—API函数详解

基于Android开发手册—API函数详解
2017-10-24 09:06:2118

内联函数详解

体在类的实现部分。 内联函数调用时不是像一般的函数那样要转去执行被调用函数函数体,执行完成后再转回调用函数中,执行其后语句,而是在调用函数处用内联函数体的代码来替换,这样将会节省调用开销,提高运行速度。 内
2017-11-02 14:05:470

一种动静结合的恶意程序函数调用图提取方法

策略找出恶意程序中隐藏的指令和函数调用,采用动态反馈机制完成动静结合分析过程中的信息同步。实验结果表明,该方法能够有效应对各种恶意程序反分析技术,完整准确地提取出恶意程序的函数调用图。
2018-02-24 13:52:240

c#调用matlab函数

本文档内容介绍了基于c#调用matlab函数,供参考
2018-04-19 10:53:5523

如何在函数库中调用指令?

函数是一段可复用的代码。我们通常把重复的代码放进函数中并且在不同的地方去调用它。库是函数的集合。我们可以在库中定义经常使用的函数,这样其它脚本便可以不再重复代码而使用这些函数
2018-08-31 15:51:083494

如何将STM32单片机中的函数调用到入口参数

STM32—数组作为被调用函数的入口参数时,要两个条件, 1:数组首地址 2:数组长度 在被调用函数中,比如把数据保存到数组pbuffer[ ]中,那么在入口参数定义时要定义成指针u8 *pbuffer,
2018-12-18 15:05:225411

关于DSP中fft函数调用方法

以下主要是通过代码调用ftf函数
2019-01-01 08:35:007861

linux中追踪函数backtrace调用堆栈

一般察看函数运行时堆栈的方法是使用GDB之类的外部调试器,但是,有些时候为了分析程序的BUG,(主要针对长时间运行程序的分析),在程序出错时打印出函数调用堆栈是非常有用的。在头文件
2019-04-02 14:34:50547

如何在中断C函数调用C++

之前,我们在单片机程序开发时都会面对中断函数。众所周知的,这个中断函数肯定是要用C函数来定义的。我在用C++进行程序开发的时候就发现了一个需要解决了问题:在断函数中怎么调用C++的成员函数
2019-05-09 18:17:000

带你了解嵌入式C语言函数调用

大家都知道函数调用是通过栈来实现的,而且知道在栈中存放着该函数的局部变量。但是对于栈的实现细节可能不一定清楚。
2019-07-12 17:08:211890

UCOS2系统内核讲述(二)_ 初始化调用函数

UCOS2系统内核讲述(二)_初始化调用函数
2020-03-25 09:57:041519

为什么中断处理函数不能直接调用不可重入函数

1 前言 最近在公司维护的项目中碰到一个解决了定位很久的 bug , bug 找到的时候发现犯了很低级的错误——在中断处理函数调用了 printf 函数,因为中断处理函数调用了不可重入函数,导致
2021-02-17 09:33:004862

在BuildRelay中会调用Codegen函数

接着上一章继续深入代码,在BuildRelay中会调用Codegen函数。这个函数实现在src/relay/backend/graph_runtime_codegen.cc中。Codegen实现了内存的分配,IR节点到TIR节点的转换,tir图节点的一个调度优化。
2022-02-08 16:02:25507

FreeRTOS中的API函数功能分析及调用方法

FreeRTOS中的API函数功能分析及调用方法说明。
2021-03-26 11:50:3532

矿石收音机制详解

矿石收音机制详解
2021-12-27 17:52:4341

详解python普通函数创建与调用

函数是一种仅在调用时运行的代码块。您可以将数据(称为参数)传递到函数中,然后由函数可以把数据作为结果返回。
2022-03-01 16:32:341626

python偏函数和泛型函数详解

python偏函数 假如一个函数定义了多个位置参数,那你每次调用时,都需要把这些个参数一个一个地传递进去。 比如下面这个函数,是用来计算 x的n次方 的。 def power
2022-03-03 16:43:351470

详解C/C++堆栈的工作机制

我们经常会讨论这样的问题:什么时候数据存储在堆栈(Stack)中,什么时候数据存储在堆(Heap)中。我们知道,局部变量是存储在堆栈中的;debug时,查看堆栈可以知道函数调用顺序;函数调用时传递
2022-07-29 09:09:48786

C语言使用函数调用在内存中究竟发生了什么?

C语言使用函数调用,我们再熟悉不过了,但是函数调用在内存中究竟发生了什么真的清楚吗?只有搞清楚内存里的内幕,才算完全搞懂函数调用
2023-01-13 14:09:14687

一文详解C/C++回调函数

首先看一下回调函数的官方解释:回调函数就是一个通过函数指针调用函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是
2023-02-12 09:20:311175

嵌入式系统中函数如何调用

嵌入式系统中,一个函数调用时,它的内部机理是什么,执行了哪些步骤?如图1所示,先看 看 一个程序在运行时,它的内存分布状况。
2023-02-13 14:15:59758

系统调用与普通的函数调用之间的区别

函数之间是可以相互调用的,这很简单很happy有没有。 要知道是代码、是函数就可以相互调用,不管你用什么语言写的。
2023-02-15 11:47:572967

嵌入式软件架构设计之函数调用

函数调用很好理解,即使刚学没多久的朋友也知道函数调用是怎么实现的,即调用一个已经封装好的函数,实现某个特定的功能。 把一个或者多个功能通过函数的方式封装起来,对外只提供一个简单的函数接口,然后在其他地方调用即可
2023-02-15 14:48:03640

函数调用时底层会发生什么

如果你懂得用箱子打包东西,你就能明白函数调用是怎么一回事。 原来,在程序运行时每个被调用函数都有自己的一个箱子,假设这段代码是这样写的:
2023-02-17 14:47:48421

C语言函数调用的形式及过程

C语言函数调用时的数据传递 在调用有参函数时,主调函数和被调函数之间有数据传递关系。 在定义函数函数名后面括号中的变量称为“形式参数”或“虚拟参数”;在主调函数调用一个函数时,函数名后面括号中的参数称为“实际参数”。
2023-03-10 14:28:251048

什么是函数调用

函数调用,就是使用我们已经定义好的函数,或者C语言自带的库函数
2023-04-04 17:21:453696

SCL中调用函数的示例

在此,可插入函数 (FC) 调用函数块 (FB) 调用函数块可作为单实例、多重实例或参数实例进行调用
2023-06-06 10:18:261183

博途的多重背景调用

函数块 (FB) 调用另一个函数块时,可其实例数据存储在调用函数块的背景数据块中。这种块调用又称之为多重实例。
2023-06-08 15:50:561989

网络系统调用网络套接字入口函数

网络套接字入口函数 //所有的网络套接字系统调用函数(socket bind listen connect )都使用一个共同的入口函数:sys_socketcall /* 第一个参数call表示
2023-07-24 11:02:49247

空闲任务钩子函数详解

空闲任务钩子函数详解 1、钩子函数 FreeRTOS中有多个钩子函数,钩子函数类似回调函数,当某个功能(函数)执行的时候就会调用钩子函数,至于钩子函数的具体内容那就由用户来编写。如果不需要使用钩子函数
2023-07-30 10:57:52549

调用SCL函数块-事例

在以下部分中,将在组织块“Main” 中调用 SCL 函数块“SCL_Best_before_date” 并互连输入和输出参数。
2023-08-10 09:51:51507

通过函数指针调用函数,需不需要加星号?

先来说下结论,不管是获取函数地址,还是通过函数指针调用函数,两种写法都可以,就用法上来说,没有什么区别,初学者也不必过多纠结。
2023-09-05 17:05:51601

STM32库函数SystemInit()详解

STM32库函数SystemInit()详解
2023-09-18 15:45:501604

python定义函数调用函数的顺序

定义函数调用函数的顺序 函数被定义后,本身是不会自动执行的,只有在被调用后,函数才会被执行,得到相应的结果。但是在 Python 中我们要注意一个关键点,就是Python不允许前向引用,即在函数
2023-10-04 17:17:00477

python函数函数之间的调用

函数函数之间的调用 3.1 第一种情况 程序代码如下: def x ( f ): def y (): print ( 1 ) return y def f (): print
2023-10-04 17:17:00306

动态函数接口的调用原理

本篇将从编译,执行层面为大家讲解函数式接口运行的机制,让各位小伙伴更进一步加深对函数式接口的理解 概述 函数式接口包含三部分内容: (应用篇一 JDK源码解析——深入函数式接口
2023-10-13 11:27:02239

Python 简化函数调用的3种技巧

假设有一个函数,这个函数需要接收4个参数,并返回这4个参数的和: def sum_four (a, b, c, d): return a + b + c + d 如果需要固定最后前三个参数,仅改变
2023-11-01 16:20:41145

我们应如何查看某一次函数调用时的内部变量呢?

模块化设计的思想是把一些相似的功能(比如电机控制、阀控制)设计成函数函数块,这样就可以反复调用
2023-11-17 09:09:55242

python调用math函数的方法

中。本文将详细介绍math模块中的各种数学函数调用方法,包括函数的功能、参数的使用和返回值的含义等方面,以帮助读者更好地理解和应用这些函数。 一、导入math模块 要使用math模块中的函数,首先需要将其导入到Python程序中。可以使用import语句将
2023-11-22 11:01:55850

linux用gdb调试遇到函数调用怎么办?

linux用gdb调试遇到函数调用怎么办? 在Linux上使用GDB调试时,遇到函数调用是一个常见的情况。函数调用可能涉及到多个函数、多个文件,这就需要我们仔细审查代码,理解函数之间的关系和参数传递
2024-01-31 10:33:36158

已全部加载完成