c# 怎样在函数A中取另一函数B的局部变量值

c# 怎样在函数A中取另一函数B的局部变量值,第1张

我想你的问题是A与B是两个类中的方法。

这个涉及到对象的概念,同样是函数B所属的类可以定义多个不同的对象,而每个对象中的成员都是独立的。对于非静态类而言,每一个实例化的对象互相时封闭的,你赋值的a与取值的a不是同一实例吧。

你是想获取到方法中的变量值吗?这种一般在类下定义个同类型成员变量,之后如果外部需要获取值就把局部变量赋值给成员变量,之后外面就是 *** 作外部变量,可是必须强调是,外部成员变量不管怎么 *** 作,是不会影响到方法内的局部变量的,因为局部的变量在方法执行完毕后就没用了,下次再进入方法中,除非你把成员变量的值重新赋值给那个方法中的变量才能获取到外部的变量 *** 作结果

所谓的自动销毁是指写开禁,比如你这个程序运行时用到了int p,这个p在电脑的内存里就占了一个位置,你在电脑上再运行其它程序的时候,就不能把那个位置分配给其它程序使用了。

当你函数结束后,这个变量自动销毁了,也就是允许其它程序得到这个变量在内存中的位置了,但是这个位置的数据并没有改变,电脑没必要给这个位置进行清零 *** 作。所以如果你在新的程序中得到这个位置后,没有初始化,而是直接调用这个位置的值,那么得到的还是上一次那个变量的值。

在IAR中经常停在一个函数内部

可它的局部变量和形参不论是拉到Watch中还是直接点出Locals

状态都是unavailable

但有时候又能够看到值我就很郁闷了

今天反复试验了一下发现当使用None优化等级时就可以看到各个局部变量的值而采用Medium优化则不能看~既前面说的unavailable

我开始想是不是局部变量被优化了但一查反汇编发现两者没什么区别

一个简单的传递2个参数的函数调用同样是把实参复制给了R1,R0(符合ATPCS)

可为啥Medium就是看不到呢因为我写代码一般用Medium相比None能节约40%的Flash空间

以上就是关于c# 怎样在函数A中取另一函数B的局部变量值全部的内容,包括:c# 怎样在函数A中取另一函数B的局部变量值、java中方法外如果何访问局部变量、函数结束后,函数所占空间会自动销毁。那下面代码为什么还能得到局部变量的地址与值呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/9600055.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存