1. 程式人生 > >C++省略號型別和引數個數不確定函式引數範例

C++省略號型別和引數個數不確定函式引數範例

宣告:所有權利保留。

轉載必須說明出處: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;
}


參考各個網頁。

非常感謝各位。

-----------------

若有問題,請隨時聯絡!

再次致謝!