مجتمع لينوكس المصري
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

مجتمع لينوكس المصري

موش هتقدر تطفي الكمبيوتر
 
الرئيسيةالبوابةأحدث الصورالتسجيلدخول

 

 [شرح] Giving A Function Number Of Arguments By y0

اذهب الى الأسفل 
كاتب الموضوعرسالة
taaz30




المساهمات : 114
تاريخ التسجيل : 28/11/2008

[شرح] Giving A Function Number Of Arguments By y0 Empty
مُساهمةموضوع: [شرح] Giving A Function Number Of Arguments By y0   [شرح] Giving A Function Number Of Arguments By y0 Icon_minitimeالأحد ديسمبر 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;
}
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
[شرح] Giving A Function Number Of Arguments By y0
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
مجتمع لينوكس المصري :: الأقسام التطويرية (البرمجية) في بيئة GNU/Linux :: .: المقالات والدورات البرمجية :.-
انتقل الى: