MIN() ماكرو في لغة C

Min Makrw Fy Lght C



تُستخدم العمليات العلائقية في لغة C على نطاق واسع ويمكن العثور عليها في كل برنامج مكتوب بهذه اللغة تقريبًا. هناك العديد من العوامل في هذه اللغة - الأكثر استخدامًا هي تساوي ( = ) وأكبر من ( > ) وأقل من ( < ). غالبًا ما يستخدم هذا النوع من العمليات في شروط if. على سبيل المثال، شرط الإدخال هو قيمة المتغير = أو > أو < لمتغير أو ثابت آخر.

هذه العمليات العلائقية مفيدة للغاية. ولكن هناك حالات نحتاج فيها إلى معرفة ليس فقط ما إذا كان أحد المتغيرات أكبر أو أصغر من الآخر، ولكن أيضًا للحصول على قيمته. على الرغم من أنه يمكن القيام بذلك بسهولة باستخدام عبارات 'if' والعمليات العلائقية البسيطة، إلا أن لغة C تزود وحدات الماكرو أيضًا بوظائف تقوم بإرجاع القيمة القصوى أو الدنيا بين متغيرين.

في مقالة Linuxhint هذه، ستتعلم كيفية استخدام الماكرو MIN() للعثور على الحد الأدنى لقيمة متغيرين. سنعرض لك بناء الجملة وطريقة الاتصال ونوع البيانات التي يقبلها. بعد ذلك، سنلقي نظرة على وصف لكيفية عمله ونراجع التعبير والصيغة التي ينطبق عليها هذا الماكرو.







ثم نطبق ما تعلمناه في مثال عملي يتضمن مقتطفات من التعليمات البرمجية والصور التي توضح كيفية العثور على الحد الأدنى باستخدام أنواع البيانات المختلفة كمدخلات للماكرو MIN().



بناء جملة ماكرو MIN() في لغة C

دقيقة ( أ , ب )

وصف الماكرو MIN() في لغة C



يقوم الماكرو MIN() بإرجاع الحد الأدنى للقيمة بين المتغيرات 'a' و'b'. التعبير الذي يتم عرضه بواسطة الماكرو MIN() هو شرط صواب/خطأ حيث يتم تطبيق العملية العلائقية '<' بين المتغيرين 'a' و'b'. إذا كانت 'أ' أقل من 'ب'، يتم إرجاع 'أ'. إذا كان 'ب' أقل من 'أ'، يتم إرجاع 'ب'.





#define MIN(a,b) (((a)<(b))?(a):(b))

يعمل الماكرو MIN() مع جميع أنواع البيانات في مدخلاته ومخرجاته بالقاعدة الوحيدة التي تنص على أن كلا متغيري الإدخال يجب أن يكونا قيمًا رقمية.

يتم تعريف هذا الماكرو في رأس 'param.h' في المجلد 'sys'. لاستخدامه، نحتاج إلى إدراجه في الكود الخاص بنا على النحو التالي:



#تشمل

كيفية العثور على الحد الأدنى بين متغيرين صحيحين باستخدام Macro MIN()

في هذا المثال، قمنا بإنشاء المتغيرات 'a' و'b' من النوع int والتي نخصص لها قيمة عشوائية ونجد منها الحد الأدنى عن طريق استدعاء الماكرو MIN(). نقوم بعد ذلك بإخراج القيمة التي تم إرجاعها باستخدام الدالة printf().

للقيام بذلك، نقوم بتضمين الرؤوس 'stdio.h' و'param.h' ونفتح دالة main() من النوع void. في ذلك، نحدد الأعداد الصحيحة 'a' و'b' ونخصص لها قيمة عشوائية. نحدد أيضًا العدد الصحيح 'c' لتخزين النتيجة.

بعد ذلك، نسمي الماكرو MIN() ونمرر 'a' و'b' كوسائط الإدخال و'c' كوسائط الإخراج. نقوم بعرض النتيجة التي تم إرجاعها عن طريق استدعاء الدالة printf(). وفيما يلي الكود الخاص بهذا المثال:

#تشمل

#تشمل

فارغ رئيسي ( ) {

كثافة العمليات أ = 32 ;

كثافة العمليات ب = 14 ;

كثافة العمليات ج ;

ج = دقيقة ( أ , ب ) ;

printf ( ' الحد الأدنى هو %i ' , ج ) ;

}

بعد ذلك، نرى صورة مع تجميع وتنفيذ هذا الرمز. كما نرى، يقوم الماكرو MIN() بإرجاع قيمة 'b' في هذه الحالة.

ويحدث الشيء نفسه إذا استخدمنا متغيرات النوع المزدوج.

#تشمل

#تشمل

فارغ رئيسي ( ) {

مزدوج أ = 3 ;

مزدوج ب = 1 ;

مزدوج ج ;

ج = دقيقة ( أ , ب ) ;

printf ( ' الحد الأدنى للزوجي a وb هو %f ' , ج ) ;

}


الحد الأدنى والحد الأقصى مع متغيرات النقطة العائمة

يعد الماكرو MIN() دالة مفيدة، ولكن لا يوصى باستخدامها للمتغيرات التي تستخدم قيم الفاصلة العائمة. للعثور على الحد الأدنى من هذا النوع من القيم، توفر مكتبة الرياضيات مجموعة من الوظائف المحددة في رأس 'math.h'. تتكون هذه المجموعة من وظائف fmin() وfminf() وfminl(). دعونا نلقي نظرة على بناء الجملة التالي لكل من هذه الوظائف:

مزدوج fmin ( مزدوج س , مزدوج و ) ;
يطفو com.fminf ( يطفو س , يطفو و ) ;
طويل مزدوج com.fminl ( طويل مزدوج س , طويل مزدوج و ) ;

تعمل الدالة fmin() على بيانات من النوع المزدوج (8 ​​بايت) بفاصلة عائمة. تعمل الدالة fminf() مع البيانات من النوع float (4 بايت)، بينما تعمل fminl() مع البيانات من النوع long double (16 بايت). كما تقوم هذه الوظائف بمعالجة القيم غير الرقمية (NaN).

خاتمة

في مقالة Linuxhint هذه، شرحنا كل ما تحتاج إلى معرفته لاستخدام الماكرو MIN() للعثور على الحد الأدنى للقيمة بين متغيرين. لقد نظرنا إلى بناء الجملة وتعريف هذا الماكرو بالإضافة إلى الصيغة التي تطبق شرط صواب/خطأ لعملية 'أقل من' (<) بين متغيري الإدخال.

قمنا بعد ذلك بتطبيق النظرية التي تعلمناها على مثال عملي باستخدام مقتطفات التعليمات البرمجية والصور لتوضح لك كيفية التعامل مع أنواع مختلفة من البيانات. لقد أظهرنا لك أيضًا الخيارات الموصى بها للتعامل مع أرقام الفاصلة العائمة حيث لا يوصى باستخدام MIN().