Lua执行字节码的过程介绍(3)

这里首先判断g是不是table,然后第7行取得g的hash部分,通过第8行luaH_set里的luaH_get得到table中key对应的old value。最后第11行,函数setobj2t将val("bar")存放在了全局变量foo的位置处,即foo = “bar”。

1 #define setobj(L,obj1,obj2) \ 2 { const TValue *o2=(obj2); TValue *o1=(obj1); \ 3 o1->value = o2->value; o1->tt=o2->tt; \ 4 checkliveness(G(L),o1); }

好了到了这里语句foo = “bar”对应的两条字节码的解释过程已经全部介绍完了,下面的三条字节码就不再详细解释了,大家可以按照上面的路线自己过一遍~

Lua 语言 15 分钟快速入门

Lua程序设计(第2版)中文 PDF

Lua程序设计(第二版)阅读笔记

NetBSD 将支持用 Lua 脚本开发内核组件

CentOS 编译安装 Lua LuaSocket

Lua 的详细介绍请点这里
Lua 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/d702bc209ba3b84e32a8a5e32c509e70.html