English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل أساسي لغة C

تحكم في العملية لغة C

الوظائف في لغة C

الصفوف في لغة C

المراجع في لغة C

ال

هيكل لغة C

ملف لغة C

C أخرى

دليل مرجع لغة C

استخدام مكتبة مكتبة C va_arg() الماكرو و مثال

مكتبة C القياسية - <stdarg.h>

مكتبة مكتبة C type va_arg(va_list ap, type) استخراج قائمة المعدلات الخاصة بالدالة من نوع type النوع التالي. لا يمكن للمكتبة أن تحكم ما إذا كان النوع المستخرج هو آخر المعدلات المرسلة إلى الدالة.

الإعلان

هذا هو إعلان مكتبة va_arg() الماكرو.

type va_arg(va_list ap, type)

المعدلة

  • ap --  هذا هو va_list مثل النوع، يحتوي على معلومات حول الم 参数 الإضافية واستخراج الحالة. يجب أن يتم تعيين هذا الهدف من خلال دعوة va_start قبل أول استدعاء لـ va_arg.

  • type --  هذا هو اسم النوع. يستخدم اسم النوع هذا كنوع للتعبير الذي يتم توسيعه من قبل هذا الماكرو.

القيمة المعدة

المكتبة تعود قيمة التعبير التالي من نوع type.

مثال عبر الإنترنت

السلسلة التالية توضح استخدام مكتبة va_arg() الماكرو.

#include <stdarg.h>
#include <stdio.h>
int sum(int, ...);
int main()
{'}
   printf("10 و 34 المجموع = %d\n", sum(2, 10, 34));
   return 0;
}
int sum(int num_args, ...)
{'}
   int val = 0;
   va_list ap;
   int i;
   va_start(ap, num_args);
   للبدء (i = 0; i < num_args; i++) 
   {'}
      val += va_arg(ap, int);
   }
   va_end(ap);
 
   return val;
}

لنقوم بترميز وتشغيل البرنامج أعلاه، مما ينتج عنه ما يلي:

الناتج = 10 + 34 = 44

مكتبة C القياسية - <stdarg.h>