الفرق الرئيسي - ماكرو مقابل الوظيفة المضمنة
الماكرو هو جزء من التعليمات البرمجية ، وهو توجيه ما قبل المعالج. الوظيفة المضمنة هي ميزة تحسين C ++ لتقليل وقت تنفيذ البرنامج. لذلك ، فإن الاختلاف الرئيسي بين دالة الماكرو والدالة المضمنة هو أنه يتم فحص الماكرو بواسطة المعالج المسبق بينما يتم فحص الوظيفة المضمنة بواسطة المترجم.
يتم تضمين ماكرو في بداية البرنامج مسبوقًا بعلامة التجزئة. عندما يكون هناك اسم الماكرو في البرنامج ، يتم استبداله بمحتوى الماكرو.
ما هو ماكرو؟
المعالج المسبق هو برنامج يعالج الكود المصدري قبل أن يمر عبر المترجم.وهي تعمل باستخدام سطر أوامر المعالج المسبق أو التوجيهات. في البرنامج ، يتم وضع توجيهات المعالج في البرنامج المصدر قبل البرنامج الرئيسي. قبل أن يمر كود المصدر عبر المترجم ، يتم فحصه بواسطة المعالج المسبق لتوجيهات المعالج المسبق. توجيهات المعالج لها الرمز. على عكس العبارات الأخرى ، لا تنتهي بفاصلة منقوطة. نوع واحد من توجيهات ما قبل المعالج هو الماكرو. بشكل عام ، تتم كتابة وحدات الماكرو بأحرف كبيرة.
الشكل 01: برنامج C ++ مع وحدات ماكرو
وفقًا للبرنامج أعلاه ، يشير السطر 3 والخط 4 إلى وحدات الماكرو. عند حساب المنطقة ، يتم استبدال قيمة PI باستخدام الماكرو المحدد. في السطر 14 ، الحجم=CUBE (القيمة) ، يقوم المعالج المسبق بتوسيع البيان كـ حجم=(القيمةالقيمةالقيمة).يمكن كتابة العثور على المكعب كدالة ، ولكن هنا مكتوب باستخدام ماكرو. إذا كان هناك عبارة كـ volume=CUBE (x + y) ، فسيتم توسيعها إلى الحجم=(x + yx + yx + y).
بعض الرموز المميزة للبرمجة قد يتم كتابتها بشكل خاطئ بسهولة. يمكن استبدالها باستخدام وحدات الماكرو. على سبيل المثال define AND &&، define OR ||. يمكن أن يتضمن تعريف الماكرو أيضًا تعبيرات مثل define AREA 45.56.
ما هي الوظيفة المضمنة؟
عندما يتم استدعاء وظيفة ، فإن المترجم يستغرق بعض الوقت لتنفيذها. إذا لم تكن الوظيفة معقدة للغاية ، يمكن للمبرمج تحويل الوظيفة إلى دالة مضمنة. الرجوع إلى البرنامج أدناه.
الشكل 02: وظيفة بدون مضمنة
وظيفة print_hello بسيطة. يقوم بطباعة السلسلة "Hello" عندما يتم استدعاء الوظيفة. وقت تنفيذ هذه الوظيفة هو 0.187 ثانية. عند استخدام الكلمة الأساسية المضمنة على النحو التالي ، يقل وقت التنفيذ إلى 0.064 ثانية.
الشكل 03: وظيفة مضمنة
لذلك ، باستخدام الكلمة الأساسية المضمنة ، يقلل وقت التنفيذ. قد لا تعمل الدالات المضمنة إذا كانت هناك حلقات وعبارات تبديل وإذا كانت الوظيفة تحتوي على متغيرات ثابتة أو دوال تكرارية.
ما هو الفرق بين الماكرو والدالة المضمنة؟
ماكرو مقابل الوظيفة المضمنة |
|
الماكرو هو جزء من الكود ، وهو توجيه للمعالج المسبق يتم تضمينه في بداية البرنامج مسبوقًا بعلامة التجزئة. | الوظيفة المضمنة هي ميزة تحسين C ++ لتقليل وقت تنفيذ البرنامج. |
وقت التقييم | |
في الماكرو ، يتم تقييم الوسيطة في كل مرة يتم استخدامها في البرنامج. | في السطر ، يتم تقييم الوسيطة مرة واحدة. |
تم الفحص بواسطة | |
يتم فحص الماكرو بواسطة المعالج. | وظيفة مضمنة يتم فحصها من قبل المترجم. |
الكلمة الرئيسية | |
يستخدم ماركوتعريف | تستخدم الدالة المضمنة الكلمة الرئيسية "مضمنة". |
الاستخدام | |
يمكن استخدام ماكرو لتعريف الثوابت والتعبيرات واستبدال النص الحرفي ولتعريف الوظائف وما إلى ذلك. | يمكن استخدام وظيفة مضمنة لتقليل وقت تنفيذ البرنامج. |
الإنهاء | |
ماكرو ينتهي بالخط الجديد. | تنتهي الوظيفة المضمنة بالدعامة المتعرجة في نهاية الوظيفة المضمنة. |
تحديد النقطة | |
تعريف ماركو في بداية البرنامج | يمكن أن تكون الوظيفة المضمنة داخل الفصل الدراسي أو خارجه. |
ملخص - ماكرو مقابل الوظيفة المضمنة
ناقش هذا المقال الفرق بين دالة الماكرو والمضمنة. تستخدم هذه المفاهيم في برمجة C ++. الفرق بين الماكرو والدالة المضمنة هو أن الماكرو يتم فحصه بواسطة المعالج المسبق بينما يتم فحص الوظيفة المضمنة بواسطة المترجم.