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 不固定參數”
純C/C++語言 函數參數數量可變的原理和應用
傳遞 參數 數量 動態 不固定 任意個數 任意長度
前提條件:變數型態一致