开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

123
返回列表 发新帖
楼主: 鱼刺
收起左侧

[图文资料] 易语言自制`通用型`一处传参小坑 请注意避免

[复制链接]

结帖率:100% (9/9)
发表于 2020-12-15 17:25:38 | 显示全部楼层   广东省揭阳市
如果你明确的知道你的通用型是干嘛的, 你可以选择不勾选参考, 不然建议都勾选参考
勾选参考传递过来的都是指针, 都是4个字节, 可以直接获取参数的指针然后读数据, 缺点就是不支持接收函数的返回值
如果不勾选参考的话, 可以传递函数的返回值, 就如你上面的代码, 相加返回的是双精度, 那这个参数是占用了8个字节, 而不是4个字节

不勾选参考需要特别处理传递参数的长度, 但是支持传递函数的返回值
勾选参考之后船渡的参数长度都固定是4个字节, 但是不支持传递函数的返回值, 但是我不觉得这个是问题

两个建议, 1. 不使用通用型,改成用整数型, 2. 所有通用型都勾上参考, 并写好备注不支持函数返回值, 只支持立即数和变量
立即数就是常量, 地址不会改变, 变量的话只要子程序没返回地址也不会变
而函数的返回值他就是个临时对象, 他的生命周期只有在那一行代码上, 还没等传递到函数里就已经释放了
回复 支持 反对

使用道具 举报

结帖率:88% (7/8)

签到天数: 9 天

发表于 2020-12-15 15:39:56 | 显示全部楼层   重庆市重庆市
通用型都是骚操作,基本不咋用 = =
回复 支持 反对

使用道具 举报

结帖率:99% (68/69)

签到天数: 2 天

发表于 2020-12-15 15:21:34 | 显示全部楼层   广西壮族自治区南宁市
看到几个大佬的源码,也看到过这个通用型,很奇怪这个问题。 为什么通用型复制就可以用?自己写却不行, 是易语言留有的某些机制吗?还是这个复制的通用型做了什么处理呢?

点评

复制是直接复制文件结构的***(连类型也一起复制过来),书写只是文本,因为自带不支持,(装个eav支持库就可以直接书写了)   福建省福州市  发表于 2020-12-15 15:41
回复 支持 反对

使用道具 举报

结帖率:100% (27/27)

签到天数: 20 天

发表于 2020-12-15 14:55:16 | 显示全部楼层   福建省福州市
到整数(i + j) ;这样应该也行

直接相加编译器会转换成长整数 或 双精度小数,除非函数中参数已经指定了了数据类型

点评

确实 到整数() 就OK   河南省郑州市  发表于 2020-12-15 15:00
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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