คงจะเคยเห็น Function บาง Function ในภาษา C++ ที่รับ Argument ได้ไม่จำกัดจำนวน ยกตัวอย่างเช่น printf() วันนี้เลยอยากนำมาเสนอว่า Function แบบนี้สร้างอย่างไร แค่นี้แหละ ไม่มีอะไรมาก
#include <stdio.h>
#include <stdarg.h>
void NoLimit(char* sz_print,...)
{
va_list args; // สร้างตัวแปรแบบ va_list เพื่อเอาไว้เก็บค่าของ no limit argument
va_start(args,sz_print); // initialize ค่าของ args โดย sz_print คือ argument ที่อยู่ก่อนหน้า ...
char* str = sz_print; // ใส่ค่าเริ่มต้นให้ str
do
{
printf("%s\n",str);
str = va_arg(args,char*); // เรียก argument ตัวถัดไปมาเก็บไว้ใน str
}
while (str != NULL);
va_end(args);
}
int main(int argc, char **argv)
{
NoLimit("1","2","3",NULL);
return 0;
}
ง่ายไม๊ละ ^^
