野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13108|回复: 5

库函数中给寄存赋值时为什加缓存?

[复制链接]
发表于 2016-4-14 11:52:21 | 显示全部楼层 |阅读模式
在IO复用中为什么库函数会先将最终结果保存到 temp_2中,然后赋值,图片第二种不用也可以。官方库这样做肯定有他的道理,但是不太明白
捕获.PNG
回复

使用道具 举报

发表于 2016-4-14 13:40:31 | 显示全部楼层
这种就见仁见智了,都是算法而已,实现目的是关键
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-14 13:47:56 | 显示全部楼层
fire 发表于 2016-4-14 13:40
这种就见仁见智了,都是算法而已,实现目的是关键

嗯,谢谢管理,主要是看到很多库函数都这么写寄存器
回复 支持 反对

使用道具 举报

发表于 2016-4-14 14:28:54 | 显示全部楼层
waiting_123 发表于 2016-4-14 13:47
嗯,谢谢管理,主要是看到很多库函数都这么写寄存器

殊途同归
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-14 22:12:32 | 显示全部楼层

好的,谢谢
回复 支持 反对

使用道具 举报

发表于 2016-4-14 23:45:49 | 显示全部楼层
写程序的时候,函数一般很少直接多源数据进行直接操作,都是先将赋值给一个变量,然后操作这个变量。这样做事有好处的,可以保护源数据不被改写,由于这个函数的变量都是保存在栈里面,使用完之后,内存会被释放掉,每次调用这个函数,这个变量对应的地址都不一样,举例说,如果传参是指针,如果直接对指针操作,很容易改变指针的地址。我说的可能比较抽象,你可以在linux上写一段简单的代码测试一下,如果会linux多线程编程,这样的情况更能显而易见。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-11 23:35 , Processed in 0.033251 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表