时间:2021-05-22
想像一个场景:你的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.可以很容易添加新的配置信息。
(完)
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
springboot配置文件抽离,便于服务器读取对应配置文件,避免项目频繁更改配置文件,影响项目的调试与发布1.创建统一配置中心项目conifg1)pom配置依
本文实例讲述了C语言读写配置文件的方法。分享给大家供大家参考。具体如下:CException.h如下:/****************************
本文实例总结了C#配置文件Section节点处理方法。分享给大家供大家参考。具体如下:很多时候在项目开发中,我们都需要用配置文件来存储一些关于程序配置信息,这时
本文实例讲述了ThinkPHP公共配置文件与各自项目中配置文件组合的方法。分享给大家供大家参考。具体实现方法如下:在使用ThinkPHP时,在布局目录时,常使用
前言在做项目的时候一些配置文件都会写在settings配置文件中,今天在研究"州的先生"开源文档写作系统-MrDoc的时候,发现部分配置文件写在config.i