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