taaz30
المساهمات : 114 تاريخ التسجيل : 28/11/2008
| موضوع: [شرح] Giving A Function Number Of Arguments By y0 الأحد ديسمبر 28, 2008 11:22 am | |
| ? الموضوع علي بعضه كام سطر اساسا تخيل انك عايز تعمل دالة في البرنامج بتاعك بتستقبل عدد محدد بواستطك وكل مره العدد ده بيتغير ! يعني مثلا - اقتباس :
- arv(5,1,2,3,4,5);
arv(2,1,2); arv(x,...); الحل بسيط وسهل جدا وموجود في strarg.h = stander arguments . h تلات حاجات لازم تعرفهم وهم عباره عن macros يعني functions بس مصغيرين كاحدي استخداماتهم
- اقتباس :
- va_list;
va_start(); va_arg(); va_end(); واحده واحده بقي كود PHP: va_list; ===================== موضوعها سهل وبسيط ديت الي بتحدد عدد ال arguments الي داخله لل function جميل زيها زي مثلا - اقتباس :
- int x;
بس الفرق انك بتكتب - اقتباس :
- va_list argu;
سهله - اقتباس :
- /* va_list explanation end*/
- اقتباس :
- va_start();
====================== بتاخ حاجتين اولا طول المدخلات عددها يعني ثانيا اول argument في الداله الي هو for example int x; يعني - اقتباس :
- va_list argu;
va_start(argu,x); - اقتباس :
- /* va_start explanation end*/
- اقتباس :
- va_arg();
=============================== بتاخد حاجتين va_list; + نوع المتغير الذي سوف يدخل في المره الثانيه الي هي بعد x مثلا - اقتباس :
- va_arg(argu,int);
- اقتباس :
- /* va_arg explanation end*/
- اقتباس :
- va_end();
=============================== باينه قوي يعني هي ديت الي بتنهي المدخلات في الداله - اقتباس :
- va_end(argu);
- اقتباس :
- /* va_end explanation end*/
المثال الشهير جدا وهو حساب متوسط الاعداد
- اقتباس :
- #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; } | |
|