han*_*rik 1 c lua c-preprocessor
正在处理应针对liblua5.0和liblua5.1进行编译的某些代码,例如,我需要lua_openlibs(luaState);在5.0和luaL_openlibs(luaState);5.1中(luavs 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
Run Code Online (Sandbox Code Playgroud)
我如何使用liblua实现类似的功能?
Lua 5.1和更高版本将宏定义为LUA_VERSION_NUM版本号的十进制表示形式,例如501Lua 5.1。您可以将其与宏进行比较,例如
#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 510
lua 5.1 code
#else
older version code
#endif
Run Code Online (Sandbox Code Playgroud)