搜索
bottom↓
回复: 8

今天才看了一下lua下:和.的反汇编,:不仅仅是语法糖,而是更好

[复制链接]

出0入93汤圆

发表于 2021-5-18 07:33:37 | 显示全部楼层 |阅读模式
lua偶尔用用,从来没有深究过。网上的教程都说:是.的语法糖,今天忽然心血来潮看了下反汇编,发现根本不是那么回事。
.会调用普通函数,:会调用成员函数,虽然结果一致,但是呢,废话不多说,直接上图真相。

首先是号称语法糖的:调用、运行结果及反汇编:
  1. print((" "):byte())
复制代码



然后是规规矩矩的.调用、运行结果及反汇编:
  1. local s = " "
  2. print(string.byte(s))
复制代码



可以看到,常规调用方式不但代码长,常数表还长,还多查一次表,并且多分配一个寄存器。:方式不仅减少了代码长度,运行速度和资源占用都优化了,不仅仅只是语法糖

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入4汤圆

发表于 2021-5-18 07:53:24 | 显示全部楼层
支持楼主的探索精神!
我这几年,也是一直在搞编译和虚拟机, 对这些也比较感兴趣.

出0入8汤圆

发表于 2021-5-18 08:26:17 来自手机 | 显示全部楼层
经常看到别人的代码对于常用的函数,要用local来转一下,比如
local string = string
local format = string.format
就是为了减少全局函数查全局表的次数

楼主还要继续研究,其实这还是语法糖

出90入4汤圆

发表于 2021-5-18 09:47:00 | 显示全部楼层
LUA,有没有语法检查,在线调试工具?

出0入93汤圆

 楼主| 发表于 2021-5-18 10:04:42 | 显示全部楼层
john78 发表于 2021-5-18 09:47
LUA,有没有语法检查,在线调试工具?

有的,有很多。可能是由于lua的嵌入特性,需要嵌入到宿主程序,调试工具并不是那么好用就是了。最精简的可能就是LuaEditor/LuaStudio。

出0入34汤圆

发表于 2021-5-20 00:43:43 | 显示全部楼层
藉此帖顺道问一下,有无仁兄已将 e-Lua 移植到了 MDK 环境下的 Cortex-M3 处理器上?
数年前...估计已有近十年,当时移植了后,就是没官方所释出那 VC6.0 版来得正常。
移植这 e-Lua 也没啥目的,就是个人纯兴趣玩玩而已,如同移植 Python 般的玩玩而已。

出0入0汤圆

发表于 2021-9-11 12:01:51 | 显示全部楼层
请教楼主,Lua在运行时,出现错误,提示怎样输出 ?
#define lua_writestringerror(s,p) \
   (fprintf(stderr, (s), (p)), fflush(stderr))
我替换了这个,好像错误的语句,没有显示错误

出15入186汤圆

发表于 2021-9-11 12:32:43 来自手机 | 显示全部楼层
dog 发表于 2021-9-11 12:01
请教楼主,Lua在运行时,出现错误,提示怎样输出 ?
#define lua_writestringerror(s,p) \
   (fprintf(std ...

可以注释或者串口输出

出0入0汤圆

发表于 2021-9-11 13:38:27 | 显示全部楼层
yuyu87 发表于 2021-9-11 12:32
可以注释或者串口输出

是替换这个吗?
#define lua_writestringerror(s,p) (fprintf(stderr, (s), (p)), fflush(stderr))
替换了,是不是还有哪里要设置?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 05:01

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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