| xywhsoft |
2012-01-14 17:35 |
那也能叫宏么…… 只能说是条件编译吧……
- #define lua_pop(L,n) lua_settop(L, -(n)-1)
#define lua_newtable(L) lua_createtable(L, 0, 0) #define lua_register(L,n,f) lua_pushcfunction(L, (f)): lua_setglobal(L, (n)) #define lua_pushcfunction(L,f) lua_pushcclosure(L, (f), 0) #define lua_strlen(L,i) lua_objlen(L, (i)) #define lua_isfunction(L,n) (lua_type(L, (n)) = LUA_TFUNCTION) #define lua_istable(L,n) (lua_type(L, (n)) = LUA_TTABLE) #define lua_islightuserdata(L,n) (lua_type(L, (n)) = LUA_TLIGHTUSERDATA) #define lua_isnil(L,n) (lua_type(L, (n)) = LUA_TNIL) #define lua_isboolean(L,n) (lua_type(L, (n)) = LUA_TBOOLEAN) #define lua_isthread(L,n) (lua_type(L, (n)) = LUA_TTHREAD) #define lua_isnone(L,n) (lua_type(L, (n)) = LUA_TNONE) #define lua_isnoneornil(L, n) (lua_type(L, (n)) <= 0) #define lua_pushliteral(L, s) lua_pushlstring(L, "" s, (sizeof(s)\sizeof(zstring))-1) #define lua_setglobal(L,s) lua_setfield(L, LUA_GLOBALSINDEX, (s)) #define lua_getglobal(L,s) lua_getfield(L, LUA_GLOBALSINDEX, (s)) #define lua_tostring(L,i) lua_tolstring(L, (i), NULL)
这个是预定义,宏的话……
macro func1() as Integer 代码 end macro
区别在于,条件编译只能是根据环境不同达到不同的编译结果,预定义可以有效的减少代码数量,让结构变得清晰。宏则是一种更为便捷的加强型预定义。 |
|