Lua和C如何互動 一

2021-08-14 18:02:18 字數 893 閱讀 4634

要理解lua和c的互動,先要理解堆疊和全域性表兩個概念

lua和c/c++語言互動的主要方法是乙個無處不在的虛擬棧,棧的特點是先進後出.

lua的全域性表可以想象成乙個map雜湊表結構,比如lua有乙個變數:

name = 「hello world」

全域性表中存放了namehello world的對應關係, 可以通過name在全域性表中找到對應的hello world

c/c++想要獲取lua中的name字串的值, 首先把name放到堆疊(棧頂),方便lua看到;

lua從堆疊(棧頂)獲取到name的值, 此時棧頂變為空;

lua去全域性表中查詢name對應的字串;

全域性表返回對應的字串hello world;

lua再次把hello world放到堆疊(棧頂);

c/c++從堆疊(棧頂)獲取name的值.

**注意:**為了更好的展示原理,文中的來自於網路上部落格中.

Lua和C語言的互動(一)

lua生來就是為了和c互動的,因此使用c擴充套件lua或者將lua嵌入到c當中都是非常流行的做法。要想理解c和lua的互動方式,首先要回顧一下c語言是如何處理函式引數的。c函式和引數 大家知道c語言是用彙編實現的,在組合語言中可沒有函式的概念,與函式對應的是叫做子過程的東西,子過程就是一段指令,乙個...

Lua和C語言的互動(一)

lua生來就是為了和c互動的,因此使用c擴充套件lua或者將lua嵌入到c當中都是非常流行的做法。要想理解c和lua的互動方式,首先要回顧一下c語言是如何處理函式引數的。c函式和引數 大家知道c語言是用彙編實現的,在組合語言中可沒有函式的概念,與函式對應的是叫做子過程的東西,子過程就是一段指令,乙個...

Lua和C 的互動

step1 搭建好vs和lua相互動的環境 2.有lua lib.lib這個檔案 3.開始配置 滑鼠放在工程名那 右鍵選屬性 位址就選上面有原始碼的檔案路徑。如上,把引用目錄點開進行編輯位址是選lib檔案的位址 如上,吧庫目錄點開進行編輯位址也是lib檔案的位址 step2 給這個工程新增標頭檔案 ...