佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > 使用Lua作為C語言項(xiàng)目的配置文件實(shí)例

使用Lua作為C語言項(xiàng)目的配置文件實(shí)例

熱門標(biāo)簽:網(wǎng)站排名優(yōu)化 Linux服務(wù)器 地方門戶網(wǎng)站 服務(wù)外包 呼叫中心市場(chǎng)需求 鐵路電話系統(tǒng) AI電銷 百度競(jìng)價(jià)排名

想像一個(gè)場(chǎng)景:你的c程序需要有一個(gè)窗口,你想讓用戶可以自定義窗口大小。方法很多,比如使用環(huán)境變量,或鍵值對(duì)的文件。不管怎樣,你需要解析它。使用lua配置文件是個(gè)不錯(cuò)的選擇。

首先,你可以定義如下的配置文件:

復(fù)制代碼 代碼如下:

--define window size
width = 100
height = 50

然后,我們寫個(gè)函數(shù)來解析它,使用lua API 來指導(dǎo)lua解析配置。,下面是完整的程序:
復(fù)制代碼 代碼如下:

#include stdio.h>
#include string.h>
#include lua.h>
#include lauxlib.h>
#include lualib.h>

void load(lua_State* L, const char* fname, int *w, int *h)
{
     if (luaL_loadfile(L, fname) || lua_pcall(L, 0, 0, 0)) {
          error(L, "error:%s", lua_tostring(L, -1));
     }
     lua_getglobal(L, "width");
     lua_getglobal(L, "height");
     if (!lua_isnumber(L, -2)) {
          error(L, "width shuld be num.");
     }
     if (!lua_isnumber(L, -1)) {
          error(L, "height shuld be num");
     }
     *w = lua_tointeger(L, -2);
     *h = lua_tointeger(L, -1);
}

int main()
{
     lua_State *L = luaL_newstate();
     luaL_openlibs(L);
     int w, h;
     load(L, "config", w, h);
     printf("%d,%d", w, h);
     return 0;
}


使用lua配置文件有什么好處呢?我想,大概有以下理由:
1.Lua為你處理了所有語法細(xì)節(jié)(包括錯(cuò)誤)
2.配置內(nèi)容可讀性好,甚至你可以寫上注釋。
3.可以很容易添加新的配置信息。
(完)

您可能感興趣的文章:
  • C語言按關(guān)鍵字搜索文件夾中文件的方法
  • C語言中使用lex統(tǒng)計(jì)文本文件字符數(shù)
  • 用C語言獲取文件的大小示例分享
  • c語言打開文件函數(shù)使用方法
  • c語言獲取文件大小的示例
  • C語言讀寫配置文件的方法

標(biāo)簽:仙桃 黃山 崇左 湖南 衡水 湘潭 銅川 蘭州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用Lua作為C語言項(xiàng)目的配置文件實(shí)例》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    乾安县| 喀喇沁旗| 天镇县| 长岛县| 临安市| 紫金县| 大冶市| 黑龙江省| 林西县| 霍城县| 洛宁县| 巴林右旗| 达尔| 五指山市| 武清区| 达孜县| 霍州市| 宜州市| 惠水县| 韩城市| 江阴市| 五大连池市| 天峻县| 水富县| 黄平县| 醴陵市| 屏南县| 平顶山市| 余江县| 利川市| 定远县| 嘉黎县| 武陟县| 本溪| 宁津县| 晋中市| 延川县| 报价| 开平市| 甘孜县| 山阳县|