إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

Giving A Function Number Of Arguments By y0

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • Giving A Function Number Of Arguments By y0

    wassp?
    الموضوع علي بعضه كام سطر اساسا
    تخيل انك عايز تعمل دالة في البرنامج بتاعك بتستقبل عدد محدد بواستطك وكل مره العدد ده بيتغير !
    يعني مثلا
    كود PHP:
    arv(5,1,2,3,4,5);
    arv(2,1,2);
    arv(x,...); 
    الحل بسيط وسهل جدا وموجود في strarg.h = stander arguments . h
    تلات حاجات لازم تعرفهم وهم عباره عن 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;

    BOOOF , I AM GONE
    Still , you gotta wait for my PRESENT :D
    C programming arabic Tutorial|Programming-fr34ks

  • #2
    درس لذيذ جدا يا ستورم شكرا لـك

    تعليق


    • #3
      بارك الله فيك .. درس جميل جدا
      GCS

      تعليق


      • #4
        جميل جدا ياستورم شكرا لك ياباشا ^_^
        Programming-Fr34ks[dot]NET
        Ma Weblog
        ابدأ بتعلم Python | Ruby
        كتاب البايثون متوافر الآن
        لا اتواجد بهذا المنتدى ... للإتصال

        تعليق


        • #5
          اشطه يارجاله
          BOOOF , I AM GONE
          Still , you gotta wait for my PRESENT :D
          C programming arabic Tutorial|Programming-fr34ks

          تعليق

          يعمل...
          X