C語言和Lua互動 三

2021-07-28 05:45:24 字數 933 閱讀 5484

新建config.lua配置檔案,檔案內容:

background =
同目錄新建test.c檔案

#include 

#include

#include "lua.h"

#include "lauxlib.h"

#include "lualib.h"

lua_state *l = null;

/*獲取table對應key的值, 假設table位於棧頂*/

int getfield(lua_state *l,const

char *key)

result = (int)lua_tonumber(l,-1);//儲存獲取到的資料

lua_pop(l,1);//刪除棧

return result;

}static

void loadconfig(int *r,int *g,int *b)

*r=getfield(l,"r");//獲取table的值

*g=getfield(l,"g");

*b=getfield(l,"b");

}int main(void)

int red=0;

int green=0;

int blue=0;

loadconfig(&red,&green,&blue);//從lua檔案中載入配置

printf("red:%d,green:%d,blue:%d",red,green,blue);

lua_close(l);//關閉lua狀態

return

0;}

編譯**:

gcc -lm  -g -o test test.c /usr/local/lib/liblua.a -ldl

C語言和Lua互動 七

當用c函式擴充套件lua時,最好就是將 設計為乙個c模組。直接上 include include include include lua.h include lauxlib.h include lualib.h 待註冊的c函式,和上一節相同 static int myadd lua state l ...

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語言是用彙編實現的,在組合語言中可沒有函式的概念,與函式對應的是叫做子過程的東西,子過程就是一段指令,乙個...