我应该如何将NULL传递给va_list函数参数?

smi*_*lar 7 c++ g++ variadic-functions android-ndk

我想将NULL传递给以下函数的第4个参数:

bool CCMenuItemToggle::initWithTarget(CCObject* target, SEL_MenuHandler selector, CCMenuItem* item, **va_list args**);
Run Code Online (Sandbox Code Playgroud)

像这样:

CCMenuItemToggle::initWithTarget(this, menu_selector(GOSound::toggleButtonCallback), NULL, NULL);
Run Code Online (Sandbox Code Playgroud)

我在XCode(clang3.1)中构建它时没关系.但是当我将代码移植到android ndk(g ++ 4.7)时,它无法编译:

没有可行的从'int'转换为'va_list'(又名'__builtin_va_list')

我该怎么处理呢?

Tho*_*mas 11

我假设如果你只使用空va_list而不是NULL,你的代码将会起作用.

CCMenuItemToggle::initWithTarget( this, menu_selector(GOSound::toggleButtonCallback)
                                , NULL, va_list() );
Run Code Online (Sandbox Code Playgroud)

编辑:也许这个替代解决方案适用于两个编译器.

va_list empty_va_list = va_list();
CCMenuItemToggle::initWithTarget( this, menu_selector(GOSound::toggleButtonCallback)
                                , NULL, empty_va_list );
Run Code Online (Sandbox Code Playgroud)