2011-06-29 161 views
3

在聲明static void info(const char *fmt,...)...說法意味着什麼的最後一個參數?「......」一個C靜態函數

這是一個C庫我最近開始使用的一部分。對不起,如果它是基本的C的東西,但我從來沒有見過,谷歌並沒有如此詳細的關於...

回答

3

這意味着變量參數,這意味着編譯器將接受並編譯使用任何參數調用它。通常他們的類型在前面的參數中用值表示。

+0

*可變參數*是我正在尋找的關鍵詞! – vrince

1

如果函數的最後一個參數被寫爲...,這意味着該函數會採用任意多個參數(只要涉及的編譯器是任意類型的函數 - 函數當然需要特定的類型,但編譯器無法強制執行這些類型)。

這些參數然後可使用va_*功能集合從stdarg.h訪問。