使用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中if ... else语句的使用方法

    详解Lua中if ... else语句的使用方法

    这篇文章主要介绍了详解Lua中if ... else语句的使用方法,是Lua入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • Lua教程(十一):模块与包详解

    Lua教程(十一):模块与包详解

    这篇文章主要介绍了Lua教程(十一):模块与包详解,本文讲解了require函数、 编写模块的基本方法、使用环境、module函数等内容,需要的朋友可以参考下
    2015-04-04
  • 如何使用Vim搭建Lua开发环境详解

    如何使用Vim搭建Lua开发环境详解

    这篇文章主要给大家介绍了关于如何使用Vim搭建Lua开发环境的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • Lua模块与包学习笔记

    Lua模块与包学习笔记

    这篇文章主要介绍了Lua模块与包学习笔记,本文讲解了加载模块、加载机制等内容,需要的朋友可以参考下
    2014-12-12
  • 举例详解Lua中的协同程序编程

    举例详解Lua中的协同程序编程

    这篇文章主要介绍了Lua中的协同程序编程,是Lua入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • 在Mac OS中安装Lua的教程

    在Mac OS中安装Lua的教程

    这篇文章主要介绍了在Mac OS中安装Lua的教程,尽管基于Unix的Mac OS并没有集成Lua解释器,但安装起来依然super easy:)需要的朋友可以参考下
    2015-07-07
  • Lua判断字符串前缀是否为指定字符的3种方法

    Lua判断字符串前缀是否为指定字符的3种方法

    这篇文章主要介绍了Lua判断字符串前缀是否为指定字符的3种方法,本文还对三种方法分别做了性能测试,需要的朋友可以参考下
    2015-04-04
  • 简单的Lua 连接操作mysql数据库的方法

    简单的Lua 连接操作mysql数据库的方法

    lua连接数据库不只luasql这个库,但目前更新最快的的貌似是这个luasql,他是开源的,下面我们就来看看如何来具体操作吧
    2015-10-10
  • lua开发中实现MVC框架的简单应用

    lua开发中实现MVC框架的简单应用

    最近的游戏项目中使用了lua脚本来开发,项目中用到了MVC框架,最近有朋友问我怎么弄,在这里简单分享一下思路和一些开发中的技巧。有需要的小伙伴可以参考下。
    2015-04-04
  • Lua中的一些常用函数库实例讲解

    Lua中的一些常用函数库实例讲解

    这篇文章主要介绍了Lua中的一些常用函数库实例讲解,本文讲解了数学库、table库、字符串库、I/O库等常用函数库,需要的朋友可以参考下
    2014-09-09

最新评论