处理一些应该针对liblua5.0和liblua5.1编译的代码,例如我需要调用5.0中的lua_openlibs(luaState);
和5.1中的luaL_openlibs(luaState);
(lua
vs luaL
),如果我编译5.0,我怎么能在编译时检查还是5.1?
libcurl有一个整洁的预处理器,这个叫做CURL_AT_LEAST_VERSION
,在libcurl我可以写
#if CURL_AT_LEAST_VERSION(5, 1, 0)
// lua >=5.1-specific code
luaL_openlibs(luaState);
#else
// lua < 5.1-specific code
lua_openlibs(luaState);
#endif
我怎么能用liblua实现类似的东西?
Lua 5.1及更高版本将宏LUA_VERSION_NUM
定义为版本号的十进制表示,例如, 501
为Lua 5.1。您可以将其与宏进行比较,例如
#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 510
lua 5.1 code
#else
older version code
#endif