使用Lua作为C语言项目的配置文件实例

 更新时间:2015年04月23日 10:19:26   投稿:junjie  
这篇文章主要介绍了使用Lua作为C语言项目的配置文件实例,本文用Lua创建了一个配置文件,然后在C言语中解析它,需要的朋友可以参考下

想像一个场景:你的c程序需要有一个窗口,你想让用户可以自定义窗口大小。方法很多,比如使用环境变量,或键值对的文件。不管怎样,你需要解析它。使用lua配置文件是个不错的选择。

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

复制代码 代码如下:

--define window size
width = 100
height = 50

然后,我们写个函数来解析它,使用lua API 来指导lua解析配置。,下面是完整的程序:
复制代码 代码如下:

#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为你处理了所有语法细节(包括错误)
2.配置内容可读性好,甚至你可以写上注释。
3.可以很容易添加新的配置信息。
(完)

相关文章

  • Lua中的函数浅析

    Lua中的函数浅析

    这篇文章主要介绍了Lua中的函数,包括函数声明、函数参数、多重返回值、变长参数、具名实参、闭包函数等内容,需要的朋友可以参考下
    2014-09-09
  • Lua中if语句嵌套的使用教程

    Lua中if语句嵌套的使用教程

    这篇文章主要介绍了Lua中if语句嵌套的使用教程,是Lua入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • Lua table类型学习笔记

    Lua table类型学习笔记

    这篇文章主要介绍了Lua table类型学习笔记,本文讲解了table的基础知识和table库函数的使用以及面向对象编程实例,需要的朋友可以参考下
    2015-04-04
  • 浅谈chuck-lua中的多线程

    浅谈chuck-lua中的多线程

    Lua对多线程支持初步体验是本文要介绍的内容,主要是来了解LUA中多线程的使用,,经过反复的实验得到的结果是,lua不支持多线程,如何让它支持?来看本文内容。
    2015-07-07
  • Lua中获取table长度的方法

    Lua中获取table长度的方法

    这篇文章主要介绍了Lua中获取table长度的方法,本文用多个实例讲解多种情况下获取Table长度的方法,需要的朋友可以参考下
    2015-04-04
  • Lua极简入门指南:全局变量

    Lua极简入门指南:全局变量

    这篇文章主要介绍了Lua极简入门指南:全局变量,本文讲解了全局变量、_ENV等内容,需要的朋友可以参考下
    2014-10-10
  • Luvit像Node.js一样写Lua应用

    Luvit像Node.js一样写Lua应用

    今天小编就为大家分享一篇关于Luvit像Node.js一样写Lua应用,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Lua UnPack函数用法实例

    Lua UnPack函数用法实例

    这篇文章主要介绍了Lua UnPack函数用法实例,unpack它接受一个数组(table)作为参数,并默认从下标1开始返回数组的所有元素,需要的朋友可以参考下
    2015-04-04
  • Lua中的迭代器和泛型for介绍

    Lua中的迭代器和泛型for介绍

    这篇文章主要介绍了Lua中的迭代器和泛型for介绍,任何一种结构,只要允许你遍历集合中所有元素的都可称之为迭代器,本文就讲解了Lua中迭代器的相关知识和代码实例,并讲解了泛型for的语法,需要的朋友可以参考下
    2015-04-04
  • Lua编程中使用嵌套循环的使用教程

    Lua编程中使用嵌套循环的使用教程

    这篇文章主要介绍了Lua编程中使用嵌套循环的使用教程,是Lua入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05

最新评论