C แมโครห้องสมุด - va_start ()
C ห้องสมุดมาตรฐาน - <stdarg.h>
ลักษณะ
ห้องสมุด Cแมโครโมฆะ va_start (va_list AP, last_arg) APเริ่มต้นตัวแปรมันva_argและแมโครva_endถูกนำมาใช้ร่วมกันlast_arg ส่งผ่านไปยังฟังก์ชั่นเป็นครั้งสุดท้ายพารามิเตอร์คงรู้จักจุดไข่ปลาพารามิเตอร์ก่อนหน้านี้
แมโครนี้ต้องเรียกว่าก่อนที่จะใช้va_arg และ va_end
คำแถลง
นี่คือ va_start () คำสั่งแมโคร
void va_start(va_list ap, last_arg);
พารามิเตอร์
- AP - มันเป็นวัตถุประเภท va_listซึ่งจะใช้ในการจัดเก็บค่าพารามิเตอร์เพิ่มเติมผ่านva_argได้รับข้อมูลที่จำเป็นที่
- last_arg - ฟังก์ชั่นที่ผ่านมาเป็นที่รู้จักกันพารามิเตอร์คงผ่านไป
ราคาย้อนกลับ
NA
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงให้เห็นถึง va_start () ที่ใช้งานแมโคร
#include<stdarg.h> #include<stdio.h> int sum(int, ...); int main(void) { printf("10、20 和 30 的和 = %d\n", sum(3, 10, 20, 30) ); printf("4、20、25 和 30 的和 = %d\n", sum(4, 4, 20, 25, 30) ); return 0; } int sum(int num_args, ...) { int val = 0; va_list ap; int i; va_start(ap, num_args); for(i = 0; i < num_args; i++) { val += va_arg(ap, int); } va_end(ap); return val; }
Let 's รวบรวมและเรียกใช้โปรแกรมข้างต้นซึ่งจะส่งผลต่อไปนี้:
10、20 和 30 的和 = 60 4、20、25 和 30 的和 = 79