va_start
來自 cppreference.com
定義於標頭檔案 <cstdarg> |
||
void va_start( std::va_list ap, parm_n ); |
||
va_start
宏啟用對具名引數 parm_n 後面的可變引數的訪問。
在呼叫任何 va_arg 之前,應使用一個有效的 va_list 物件 ap 的例項呼叫 va_start
。
(C++11 起) |
如果 parm_n 是引用型別,或其型別與預設引數提升所產生的型別不相容,則行為未定義。
目錄 |
[編輯] 引數
ap | - | 一個 va_list 型別的物件 |
parm_n | - | 第一個可變引數之前的具名引數 |
[編輯] 展開值
(無)
[編輯] 注意
va_start
需要支援帶有過載 operator&
的 parm_n。
[編輯] 示例
執行此程式碼
輸出
150
[編輯] 缺陷報告
下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。
缺陷報告 | 應用於 | 釋出時的行為 | 正確的行為 |
---|---|---|---|
CWG 273 | C++98 | 不清楚 va_start 是否需要支援帶有過載 operator& 的 parm_n |
需要 |
LWG 2099 | C++98 | 如果 parm_n 被宣告為 函式、陣列或引用型別,則行為未定義 |
如果 parm_n 是引用型別 則行為未定義 |
[編輯] 參閱
訪問下一個變長函式引數 (函式宏) | |
結束變長函式引數的遍歷 (函式宏) | |
C 文件 關於 va_start
|