C++省略號型別和引數個數不確定函式引數範例
阿新 • • 發佈:2019-02-11
宣告:所有權利保留。
轉載必須說明出處:http://blog.csdn.net/cartzhang/article/details/44203651
今天想寫個巨集定義,發現巨集定義裡也可以寫不定引數,但是我的巨集最終沒有用。
因為我覺得寫完,這個不定引數給我帶來的麻煩,比好處好想多。
因此我就定義了兩個巨集,用一個巨集定義另一個。
把今天這個c++的型別不確定和引數個數不確定的用法先記下來。以備後用啊。
直接程式碼:
#include<cstdarg> // 必備標頭檔案 #include<iostream> using namespace std; typedef enum POSITION_TRACKING_STATE { NA = 11, NB, NC } TRACKING_STATE; int Test(TRACKING_STATE state, ...) { va_list arg_ptr; int sum = 0; int nArgValue; sum += state; va_start(arg_ptr, state); do { nArgValue = va_arg(arg_ptr, TRACKING_STATE); sum += nArgValue; //自定義結束條件是輸入引數為0 } while (nArgValue != NULL); va_end(arg_ptr); return sum; } int main() { cout << Test(NA, NB, NC, NULL) << endl; //必須以NULL 或0 結尾,因為引數列表結束的判斷條件是讀到0停止 return -1; }
參考各個網頁。
非常感謝各位。
-----------------
若有問題,請隨時聯絡!
再次致謝!