wassp?
الموضوع علي بعضه كام سطر اساساتخيل انك عايز تعمل دالة في البرنامج بتاعك بتستقبل عدد محدد بواستطك وكل مره العدد ده بيتغير !
يعني مثلا
كود PHP:
arv(5,1,2,3,4,5);
arv(2,1,2);
arv(x,...);
تلات حاجات لازم تعرفهم وهم عباره عن macros يعني functions بس مصغيرين كاحدي استخداماتهم
كود PHP:
va_list;
va_start();
va_arg();
va_end();
كود PHP:
va_list;
موضوعها سهل وبسيط ديت الي بتحدد عدد ال arguments الي داخله لل function جميل
زيها زي مثلا
كود PHP:
int x;
كود PHP:
va_list argu;
كود PHP:
/* va_list explanation end*/
كود PHP:
va_start();
بتاخ حاجتين اولا طول المدخلات عددها يعني
ثانيا اول argument في الداله الي هو
for example int x;
يعني
كود PHP:
va_list argu;
va_start(argu,x);
كود PHP:
/* va_start explanation end*/
كود PHP:
va_arg();
بتاخد حاجتين va_list; + نوع المتغير الذي سوف يدخل في المره الثانيه الي هي بعد x مثلا
كود PHP:
va_arg(argu,int);
كود PHP:
/* va_arg explanation end*/
كود PHP:
va_end();
باينه قوي يعني هي ديت الي بتنهي المدخلات في الداله
كود PHP:
va_end(argu);
كود PHP:
/* va_end explanation end*/
المثال الشهير جدا وهو حساب متوسط الاعداد
كود PHP:
#include<stdio.h>
#include<stdarg.h>/*for the macros*/
int arv(int x , ...);/* this is a function accepts x number of arguments */
main()
{
printf("\n Coded By Every One In The Net\n");
printf("%d",arv(5,200,500,600,400,500));
}
int arv(int x , ...)
{
int arv=0;
int counter;
va_list argu;
va_start(argu,x);
for(counter=0;counter<x;counter++)
{
arv+=va_arg(argu,int);
}
va_end(argu);
return arv/x;
}
تعليق