الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الدالة صاحبة الوسائط الغير محدودة .

بدأه مصفوفة في 10 يوليو 2008 · 1 رد · 2,047 مشاهدة · في المواضيع والدروس
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

قبل 4 شهور من الآن كنت أتعلم على c++ فكنت أكتب كل شيئ أتعلمه بس بعد أربعة شهور صرت أعرف c++ و Qt :D

بس جبتلكم ملف قديم كنت كاتب فيه كيف اصنع دالة بها وسائط لا نهائية عموما من catch(...){} a تقدر تستنتج الن الدوال التي بها وسائط لا نهائية تحوي على ثلاثة نقاط داخل منطقة الوسائط ولكن كيف نلتقط هذه المتغيرات من هذه النقاط .

يجب عليك في بداية الأمر ان تصنع متغير من النوع va_list وهو بنوعه يتلقى جميع المعلومات في وسائط المتغير

بعد ذلك نستخدم va_start والتي تريد بدورها في وسيطها الأول va_list وفي وسيطها الثاني عدد الوسائط .

ثم لكي تنتقل الى الوسيط التالي ماعليك سوى استخدام va_arg وهي ايضا تريد وسيطين الأول به متغير من النوع va_list والآخر نوع المعلومة المرجعة

وبإمكانك استخدامها عدة مرات ملاحة: لا تتجاوز عدد المتغيرات المدخلة .

اذا ما انتهيت من العمل مع va_list استدعي va_end وتأخذ وسيطا واحدا وهو va_list اترككم مع المثال المنقول

#include <stdio.h>
#include <stdarg.h>

void PrintLines ( char* first, ...)
{
  char* str;
  va_list vl;

  str=first;

  va_start(vl,first);

  do {
	printf ("%s\n",str);
	str=va_arg(vl,char*);
  } while (str!=NULL);

  va_end(vl);
}

int main ()
{
  PrintLines ("First","Second","Third","Fourth",NULL);
  return 0;
}

والسلام عليكم ورحمة الله وبركاته

تم تعديل هذه المشاركة بواسطة مصفوفة في 10 يوليو 2008 في 15:49

بسم الله الرحمن الرحيم

مدونة دوال

كيوتي العربي

#2

شكرا اخي على الدرس الرآئع

H4Z3M

Mysql

hm7bzmeskyfcyhsdmdv6.gif

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…