Lua程序设计(七十七)

C语言API总览

Lua 是一种嵌入式语言( embedded language),这就意味着 Lua 并不是一个独立运行的应用。而是作为一个库,链接到其它应用程序,从而达到融入 Lua 功能的效果。

同时,使用了 Lua 语言的程序也可以在 Lua 环境中注册新的函数,比如用 C 语言(或其它语言)实现的函数,从而增加一些无法直接用 Lua 语言编写的功能,因此 Lua 语言同时是一种可扩展语言 (extensible language)。

Lua 语言作为嵌入式语言的情况下, C 语言拥有控制权,而 Lua 语言被用作库,这种交互形式中的 C 代码被称为应用代码。而 Lua 语言作为可扩展语言时,C 代码被称为库代码。应用代码和库代码都是用相同的API与 Lua 进行通信,这些 API 被称为 C API

C API 是一个函数,常量和类型所组成的集合。有了它,C 语言代码就能与 Lua 语言交互。 C API 包括读写 Lua 全局变量的函数,调用 Lua 函数的函数,运行 Lua 代码段的函数,以及注册 C 函数的函数等。

C API 遵循 C 语言的操作模式。 在使用 C 语言编程时必须注意类型检查,错误恢复,内存分配错误和其他一些复杂的概念。C API 中的大多函数都不会检查其参数的正确性,必须在调用函数前确保参数的合法性。

#include <stdio.h>
#include <string.h>
#include "lua.h"
#include "luaxlib.h"
#include “lualib.h”

int main (void{
	char buf[256];
	int error;
	lua_State *L = luaL_newstate();
	luaL_openlibs(L);
	whil (fgest(buff, sizeof(buff), stdin) != NULL) {
		error = luaL_loadString(L, buff) || lua_pcall(L, 0, 0, 0);
		if (error) {
			fprintf("stderr, "%s\n", lua_tostring(L, -1));
			lua_pop(L, 1);
		}	
	}
	
	lua_close(L);
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值