สำหรับตัวอย่างนี้ เป็นโปรแกรมการทำงานเกี่ยวกับ
ในโปรแกรมนี้เป็นโปรแกรมรับค่าจำนวนตัวแปรของ Argument (Receiving a Variable Number of Arguments) ครั้งนี้ ได้เพิ่มการใช้ชุดคำสั่งชื่อว่า ‘cstdarg’ เอาไว้ด้วย โดยคำสั่งที่ใช้มีความด้วยกัน 3 คำสั่ง va_list= variable list va_start= variable start va_end= variable end เริ่มจากการการทำงานของ int main(…) ซึ่ง cout(ปริ้นทางหน้าจอ) ได้ประกาศและเป็น sum(6, 2, 4, 6, 8, 10, 12) และ sum(9, 11, 22, 33, 44, 55, 66, 77, 66, 99) โดย sum(…)เป็นชื่อของmethod ที่เราสร้างขึ้นก่อน ฟังก์ชั่น main โดยใน sum นั้นได้รับค่าตัวเลขทั้งหมดแล้วประมวลผลออกมาเป็นตัวเลข 2 และทำซ้ำอีกครั้งใน sum ต่อไป โดยโปรแกรมนี้ เป็นการนำpointer และ การใช้ชุดคำสั่ง ‘csrdarg’ เป็นหลัก ตำแหน่งที่กำหนดไว้ตั้งแต่แรกเป็นตัวที่สอง ของตัวเลขทั้งหมด หากต้องการให้มี การเปลี่ยนแปลงของตำแหน่ง และต้องเปลี่ยนแปลง int sum(0); for(int i = 0 ; i<count ; i++); sum += va_arg(arg_prt, int);
เพื่อเปลี่ยนตำแหน่งการปริ้นตัวเลขออกมาจากหน้าจอแสดงผล
Flowchart การทำงาน
Source Code มีดังนี้
#include “stdafx.h”
#include <iostream>
#include <cstdarg>
using std::cout;
using std::endl;
int sum(int count, …)
{
if (count <= 0)
return 0;
va_list arg_prt;
va_start(arg_prt, count);
int sum(0);
for(int i = 0 ; i<count ; i++);
sum += va_arg(arg_prt, int);
va_end(arg_prt);
return sum;
}
int main(int argc, char* argv[])
{
cout << sum(6, 2, 4, 6, 8, 10, 12) << endl;
cout << sum(9, 11, 22, 33, 44, 55, 66, 77, 66, 99) << endl;
system(“pause”);
return 0;
}
Output ผลการทดลอง
Developed by
ภูมินทร์ บุญโรจน์
รุ่งนภา กองเกตุ
จิราภา คุ้มทอง