0

sysv_abi として宣言された可変引数関数を実装しようとしているので、この関数で va_start を使用する必要がありますが、方法が見つかりませんでした。

vs2017を使用して、Win64でコードをコンパイルします。コンパイラはclang-clです。ターゲットは x86_64 実行可能ファイル (もちろん Windows 上の PE ファイル) です。

int __attribute__((sysv_abi)) my_sprintf_s(char *buffer, size_t sizeOfBuffer, const char *format, ...)
{
    va_list arg_list;
    va_start(arg_list, format);
    int ret = vsprintf_s(buffer, sizeOfBuffer, format, arg_list);
    va_end(arg_list);

    //__builtin_va_list v_list;
    //__builtin_va_start(v_list, format);
    //int ret = vsprintf_s(buffer, sizeOfBuffer, format, v_list);
    //__builtin_va_end(v_list);

    return ret;
}

どちらもコンパイルされません。

error : 'va_start' used in System V ABI function

どうすればこれに対処できますか?

4

0 に答える 0