يا جماعة الخيييييييييير .... حاولت أفهمها لوحدي لكن ... ما قدرت
استخدامها .... وظائفها .... طريقتها مع الهدر فايلز ..
#ifndef .. .. .. .. #endif
أرجو منكم الرد على هذا الاستفسار ..
يا جماعة الخيييييييييير .... حاولت أفهمها لوحدي لكن ... ما قدرت
استخدامها .... وظائفها .... طريقتها مع الهدر فايلز ..
#ifndef .. .. .. .. #endif
أرجو منكم الرد على هذا الاستفسار ..
#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 //انتهاء كتلة الشرط.
مشكووووووووور وما قصرت بس محتاج أمثلة أكثر ...
هذا الموضوع مغلق.