math_type是lua库函数math.type的具体实现。math_type的作用是判断一个参数是整数还是浮点数:
math_type的声明如下:
static int math_type (lua_State *L);
math_type的实现源码:
static int math_type (lua_State *L) {
if (lua_type(L, 1) == LUA_TNUMBER) {
if (lua_isinteger(L, 1))
lua_pushliteral(L, "integer");
else
lua_pushliteral(L, "float");
}
else {
luaL_checkany(L, 1);
lua_pushnil(L);
}
return 1;
}
math_type判断参数是否是LUA_TNUMBER类型;如果是LUA_TNUMBER的话,则再判断参数是整数还是浮点数;否则,如果是传入了参数,则将nil入栈。