C แมโครห้องสมุด - va_arg ()
C ห้องสมุดมาตรฐาน - <stdarg.h>
ลักษณะ
ห้องสมุด Cประเภทมาโคร va_arg (va_list AP, พิมพ์) พารามิเตอร์ต่อไปดึงรายการพารามิเตอร์การทำงานของประเภทชนิดมันไม่สามารถตรวจสอบว่าพารามิเตอร์ที่ดึงมาเป็นพารามิเตอร์ที่ผ่านมาเพื่อฟังก์ชั่น
คำแถลง
นี่คือ va_arg () คำสั่งแมโคร
type va_arg(va_list ap, type)
พารามิเตอร์
- AP - มันเป็นวัตถุประเภท va_list การเก็บข้อมูลเกี่ยวกับพารามิเตอร์เพิ่มเติมและดึงรัฐวัตถุนี้ควรจะเป็นก่อนที่จะสายแรกที่ va_arg เริ่มต้นโดยการเรียก va_start
- ประเภท - นี่คือชื่อประเภทชื่อประเภทเป็นส่วนขยายประเภทจากการแสดงออกแมโครที่จะใช้
ราคาย้อนกลับ
แมโครนี้จะส่งกลับต่อไปพารามิเตอร์ชนิดพิเศษคือประเภทของการแสดงออก
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงให้เห็นถึง va_arg () ที่ใช้งานแมโคร
#include <stdarg.h> #include <stdio.h> int sum(int, ...); int main() { printf("15 和 56 的和 = %d\n", sum(2, 15, 56) ); 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 รวบรวมและเรียกใช้โปรแกรมข้างต้นซึ่งจะส่งผลต่อไปนี้:
15 和 56 的和 = 71