1
Visual C++有類似於__builtin_va_arg_pack
的東西嗎?MSVC是否有類似__builtin_va_arg_pack的東西?
此內置函數表示內聯函數的所有匿名參數。它可用於僅在內聯函數,這將是始終 內聯,從未編譯爲一個單獨的函數,例如使用 屬性((always_inline))或屬性((gnu_inline))外部內聯的那些功能。它只能作爲 傳遞給其他帶有可變參數的函數的最後一個參數。這是 用於寫可變參數 函數的小封裝內聯函數時,使用預處理器宏時不可取。例如:
extern int myprintf (FILE *f, const char *format, ...); extern inline __attribute__ ((__gnu_inline__)) int myprintf (FILE *f, const char *format, ...) { int r = fprintf (f, "myprintf: "); if (r < 0) return r; int s = fprintf (f, format, __builtin_va_arg_pack()); if (s < 0) return s; return r + s; }
對不起,但這不是我要求的。我知道如何傳遞可變參數從一個函數採用'va_list'到'...'函數,但是我需要從一個可變參數傳遞參數到另一個可變參數函數... – szx
如果你需要這個東西除了(v)printf,其中只有變量arg函數存在,但沒有采用va_list的替代函數,對於MSVC編譯器而言,您並不幸運。 – nos