C++ 如何使编译器根据版本跳过函数?

C++ 如何使编译器根据版本跳过函数?,c++,c-preprocessor,C++,C Preprocessor,我试图根据版本信息向编译器公开一个函数 #define LUA_VERSION_NUM 503 我有这个版本的信息 #define LUA_VERSION_NUM 503 我只想在版本等于或小于501 static void lua_len(lua_State *L, int i) { //do something } 这在C++中如何可能?对于Lua 5.1以上的版本,函数 LuaaLeLe是可用的,但是你不能知道,因为问题没有被标记[]。@亨利门科是什么意思?

我试图根据版本信息向编译器公开一个函数

#define LUA_VERSION_NUM     503
我有这个版本的信息

#define LUA_VERSION_NUM     503
我只想在版本等于或小于
501

static void lua_len(lua_State *L, int i) 
{
    //do something
}

这在C++中如何可能?

对于Lua 5.1以上的版本,函数<代码> LuaaLeLe<代码>是可用的,但是你不能知道,因为问题没有被标记[]。@亨利门科是什么意思?你认为我不需要这样做吗@ZackLee您不需要
#else
分支,因为Lua5.2及更高版本提供
Lua\u len
。哦,我知道。感谢您的确认。对于Lua 5.1以上的版本,功能
Lua_len
可用,但您不可能知道,因为问题没有标记[]。您的意思是什么?你认为我不需要这样做吗@ZackLee您不需要
#else
分支,因为Lua5.2及更高版本提供
Lua\u len
。哦,我知道。谢谢你的确认。
#if LUA_VERSION_NUM <= 501
static void lua_len(lua_State *L, int i) 
{
    //do something
}
#endif