Lua源码揭秘
文章平均质量分 83
Lua源码揭秘
凯奥斯
可能是最不会写注释的程序员。
展开
-
Lua源码揭秘(五)绑定Lua之前你需要知道的
lapi.c和lauxlib.c里包含了大部分的lua的capi。所谓capi是指在c形式的api接口,可以在c/c++/c#/…中可以调用到的api,但是lua中并不一定有对应的方法。ldebug.c里有一些调试用的capi(后续文章会介绍)。另外一些capi,便是打开lua库函数的capi,在lualib.h里集中声明。lapi.c基础的capi。state相关lua_checkstatck检查原创 2017-12-02 13:21:48 · 4670 阅读 · 0 评论 -
Lua源码揭秘(四)一个不算难的string库扩展
前两篇Lua源码揭秘(二)一个简单的数学扩展库函数Lua源码揭秘(三)一个比较简单的table库扩展分别对math库和table库进行了扩展,本篇就继续扩展一下string库。 我们直接打开lstrlib.c(再次强调:在实际工作中的标准做法是在宿主语言中实现)。 添加以下代码:static int str_split(lua_State *L){ size_t l1 = 0;原创 2017-11-06 18:48:12 · 1008 阅读 · 0 评论 -
Lua源码揭秘(三)一个比较简单的table库扩展
有了上一篇 Lua源码揭秘(二)一个简单的数学扩展库函数的经验之后,我们尝试写稍微复杂一点的库函数。 我们直接打开ltablib.c(再次强调:在实际工作中的标准做法是在宿主语言中实现)。 添加以下代码:static in values(lua_State *L){ luaL_checktype(L, 1, LUA_TTABLE); lua_newtable(L);原创 2017-10-30 21:12:39 · 1534 阅读 · 0 评论 -
Lua源码揭秘(二)一个简单的数学扩展库函数
之前遇到过一个问题,在我们的游戏中大量使用了atan方法,但是atan的方法太费了,所以我们使用了泰勒展开式来求一个近似值。 arctan的泰勒展开式为: arctan(x)=x−13x3+15x5−17x7⋯+(−1)n−12n−1x2n−1arctan(x)=x-\frac{1}{3}x^3+\frac{1}{5}x^5-\frac{1}{7}x^7\cdots+\frac{{(-1)}^{原创 2017-10-28 17:05:21 · 1327 阅读 · 0 评论 -
Lua源码揭秘(一)概述
由于工作原因,需要撸一波lua源码。相关的文章有很多,其中就有云风未完成的《Lua源码鉴赏》,以及《Lua GC 的源码剖析》,也是我阅读源码过程中的重要参考。“纸上得来终觉浅,绝知此事要躬行”,于是开一个专栏,专门记录此间的心得。 lua版本是5.1.5,(⊙o⊙)…我们项目里实际上使用的是luajit-2.1(⊙o⊙)…莫名的觉得在读luajit之前应当先读一下对应的原生lua版本,于是就走上原创 2017-10-28 15:33:32 · 2616 阅读 · 0 评论