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

#ifndef و #endif

مغلق
بدأه essa في 25 أبريل 2003 · 2 رد · 2,026 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

يا جماعة الخيييييييييير .... حاولت أفهمها لوحدي لكن ... ما قدرت

استخدامها .... وظائفها .... طريقتها مع الهدر فايلز ..

#ifndef
..
..
..
..
#endif

أرجو منكم الرد على هذا الاستفسار ..

#2
#ifndef

تعرّف المترجم اذا كان الثابت معرّف أم لا , وهي هنا معناها (اذا لم يكن معرّفا)..

أي:

#ifndef  ESMAEEL

تفحص اذا كان الثابت ESMAEEL لم يتم تعريفه مسبقاً..بواسطة الامر define#

نفس الشيء ifdef لكنها تفحص اذا كان الثابت معرّف(عكس ifndef التي تفحص اذا لم يكن معرفا)...

------------------------------

لماذا نستعملها؟؟

------------------

لكي نضمن عدم تكرار تعريف متغير مرتين, أو إحتواء ملف مرتين,خاصة مع استخدام أوامر إحتواء الملفات #include فأنت لا تعرف اذا قام أحد الملفات بعمل #include لملف ما وتريد أنت الان ان تعمل له #include فتقوم بوضع الشرط ifndef _XXXXX وبعدها اعمل include بما معناه اذا لم يكن هذا الثابت معرفا قم باحتواء الملف والا فلا...

-------------------

مثلا:

لو قمت انت ببناء ملف راسي h. فكيف تضمن أن اي مشروع قد يستخدم ملفك هذا لن يكرر احتواء ملفك؟

لافي بداية ملفك تضع الشرط التالي :

#ifnde _ESMM_H

#define __ESMM_H

وبهذا فان الثابت __ESMM_H لن يتم تعريفه مرتين لأن شرط تعريفه هو عدم وجوده معرفا مسبقا, الان عندما تريد عمل #include لملفك هذا في احد المشاريع تكتب التالي:

#ifndef __ESMM_H// اذا لم يكون هذا الثابت معرفا مسبقا - وهذا يعني انه لم يتم احتواء ملفك مسبقا

#include<esmm.h>// قم باحتواء الملف في أمان.

#endif //انتهاء كتلة الشرط.
#3

مشكووووووووور وما قصرت بس محتاج أمثلة أكثر ...

هذا الموضوع مغلق.

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