C/C++ 的function 不固定參數

C/C++ 的function 不固定參數

C/C++ 的function 不固定參數


資料來源:http://www07.eyny.com/thread-10257519-1-3D41XTMV.html 

線上執行:https://www.tutorialspoint.com/compile_c_online.php



Code:

#include <stdio.h> 
#include <stdarg.h>// << 使用不定參數比須include 這個 
/* C 的function 不固定參數. 
使用上並不會限制你傳幾個. 
限制只在於你的stack 大小. 
以現在的windows 下的應用程式, 傳了上百個以上也沒問題.  
至於怎麼取得不固定參數的值. 
如下的example */ 
#define PP printf 

int average(int count,...) 
{
	int sum=0; 
	va_list args;
	va_start(args,count);
	// 初始化 不定參數列
	int i; 
	for(i = 0 ; i < count ; ++i)
	{ 
		int arg = va_arg(args,int); // 讀取參數, 每次讀取後就會指到下一個, 至於參數的型別, 必須由程式設計師自己想辦法判段
		sum+=arg;
	}
	return sum/count; 
} 

int main(int argc, char* argv[]) 
{
	PP("Average is : %d\n",average(3,1,2,3)); 
	PP("Average is : %d\n",average(4,1,100,3,4));
	return 0; 
} 

One thought on “C/C++ 的function 不固定參數

  1. 純C/C++語言 函數參數數量可變的原理和應用
    傳遞 參數 數量 動態 不固定 任意個數 任意長度
    前提條件:變數型態一致

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *