變數引數清單
argument-declaration-list 的最後一個成員若是省略符號 (...),函式宣告可以接受可變數目的引數。 在這些情況下,C++ 只會針對明確宣告的引數提供類型檢查。 需要撰寫連引數數目和類型都可以不同的一般函式時,您可以使用變數引數清單。 printf 系列函式即為使用變數引數清單的函式範例。
若要在宣告引數之後存取引數,請使用包含在標準 Include 檔 STDARG.H 中的巨集,如具有變數引數清單的函式中所述。
Microsoft 特定的
如果省略符號是最後一個引數,且省略符號在逗號之後,則 Microsoft C++ 允許將省略符號指定為引數。 因此,int Func( int i, ... ); 宣告是合法的,int Func( int i ... ); 則不合法。
END Microsoft 特定的
宣告接受可變引數數目的函式至少需要一個預留位置引數 (即使不使用該引數)。 如果未提供這個預留位置引數,就無法存取其餘引數。
將類型 char 的引數當成變數引數傳遞時,會將這些引數轉換為 int 類型。 同樣地,將 float 類型的引數當成變數引數傳遞時,會將這類引數轉換為 double 類型。 其他類型的引數受限於一般整數和浮點數提升。 如需詳細資訊,請參閱整數提升。