打印
[STM32F1]

为什么要通过临时变量间接赋值?

[复制链接]
342|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
heweibig|  楼主 | 2022-6-11 16:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有一个全局变量:float general_f;
在一个函数中要把general_f的值赋给另一个全局变量:float general_other;
void give_value(void)
{
    float temp;
    temp = general_f;
    general_other = temp;
}
为什么要通过临时变量间接赋值?有何用意?
直接general_other = general_f;不好吗?
求各位大神解惑。。。。。。。。。。。

再补充一点:程序是别人写的,他很多函数里面都是这样处理的;
函数一进来就先把全局变量的值赋给临时变量,后面所有
赋值语句中,都用temp来赋值,不再使用全局变量,感觉像是在
保护这个全局变量一样,害怕后面再使用会改变其值。

PS:程序烧写到STM32F103芯片

使用特权

评论回复
沙发
lizye| | 2022-6-11 16:16 | 只看该作者
或许这句代码本来还有其他运算,后来改成了简单的赋值,懒得把局部变量temp去掉

使用特权

评论回复
板凳
heweibig|  楼主 | 2022-6-11 16:19 | 只看该作者
程序是别人写的,他很多函数里面都是这样处理的,

使用特权

评论回复
地板
huangchui| | 2022-6-11 16:24 | 只看该作者
很多吗?那猜一下,嗯......你们公司的绩效是按代码行数来算的吗?

使用特权

评论回复
5
heweibig|  楼主 | 2022-6-11 16:26 | 只看该作者
这倒不是,绩效按老板心情来的。。。。。。

使用特权

评论回复
6
heweibig|  楼主 | 2022-6-11 16:33 | 只看该作者
有时候是有必要的,比如某个全局变量在这个函数中多次用到

使用特权

评论回复
7
heweibig|  楼主 | 2022-6-11 16:34 | 只看该作者
这个变量不一定要最新的值,但在该函数内要求每次使用的时候值不能改变

使用特权

评论回复
8
renyaq| | 2022-6-11 16:36 | 只看该作者
但是这个全局变量有可能在这个函数执行过程中被改变

使用特权

评论回复
9
zhenykun| | 2022-6-11 16:38 | 只看该作者
比如发生某个中断,中断函数中会改变这个全局变量

使用特权

评论回复
10
renyaq| | 2022-6-11 16:40 | 只看该作者
进入函数的时候就复制一份该全局变量的副本。

使用特权

评论回复
11
dingy| | 2022-6-11 16:43 | 只看该作者
对,应该是出于这种考虑, 所以他为了防止在执行函数过程中全局变量值改变, 索性所有函数中都用全局变量的副本,懒得去判断这个 全局变量是否会被改变。

使用特权

评论回复
12
zhanghqi| | 2022-6-11 16:46 | 只看该作者
有可能有其他需求

使用特权

评论回复
13
stly| | 2022-6-11 16:48 | 只看该作者
只看这一小段可看不出来

使用特权

评论回复
14
chuxh| | 2022-6-11 16:51 | 只看该作者
只看这一小段可看不出来

使用特权

评论回复
15
dingy| | 2022-6-11 16:53 | 只看该作者
是不是还有后续运算

使用特权

评论回复
16
huangchui| | 2022-6-11 16:55 | 只看该作者
这么看看不好  可以有很多的用意

使用特权

评论回复
17
liuzaiy| | 2022-6-11 16:58 | 只看该作者
全文档查找一下 看看有别的地方用吗

使用特权

评论回复
18
stly| | 2022-6-11 17:02 | 只看该作者
不明白你的情况,在PC上,出于安全考虑,如果关键的验证代码,为了防止反编译,是有这个可能,可以增加反汇编难度。

使用特权

评论回复
19
dingy| | 2022-6-11 17:05 | 只看该作者
有时候在排查缺陷时,必须要确认这个变量的赋值情况,程序里如果仅仅使用直接赋值(直接general_other = general_f;),那么可能会有很多的位置,如果改用这个函数,那么只需要在函数里设置断点就可以监视所有的赋值操作了,至于使用temp变量,可能是防止编译系统的优化处理。也可能有其他的需求,比如对需要按比例改变赋值内容(*1.x)之类的操作

使用特权

评论回复
20
heweibig|  楼主 | 2022-6-11 17:07 | 只看该作者

嗯,那我按大家的说法挨个排查一下,谢谢哈

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

869

主题

13089

帖子

7

粉丝