فارق بين إنلين و ماكرو الفرق بين

Anonim

مضمنة مقابل ماكرو

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

ليس هناك اختلاف طفيف بين الاثنين، ولكن يمكن أن يكون قليلا من الخلط بسبب الخصائص التي يحملونها. في هذه المقالة، سوف نناقش المزيد حول الاختلافات بين الدالة المضمنة وحدات الماكرو في C ++.

مضمنة

وظيفة مضمنة تماما مثل أي وظيفة أخرى في C ++ ويسمى أيضا بالطريقة العادية. الدالة التي تقوم بها هي أنه يقوم بإنشاء نسخة من تعريف الدالة المجمعة. وهذا يعني أنه ينشئ نسخة من العناصر المحددة لتجميعها. مثال يمكن أن يؤخذ إذا قمنا بإضافة أي عددين صحيحين وندعوها الدالة المضمنة، سيقوم المترجم بإنشاء نسخة من الأعداد الصحيحة التي سيتم تجميعها.

مثال:

إنلين إنت سوم (إنت x، إنت y)

{

ريتورن (x + y)؛

}

ماكرو

وحدات الماكرو في C ++ تطبيق استبدال النص في سطر برنامج. أي أنها تحل محل النص وفقا للتغيير المحدد في الوظيفة. على عكس مضمنة كدالة، ماكرو يتلاعب التعليمات البرمجية باستخدام دالة. على سبيل المثال:

#define دوبل (X) X * X

إنت y = 5؛

إنت j = دوبل (++ y)؛

هنا، سوف نحصل على قيمة 30! بما أن النداء قد تم عن طريق ماكرو، تم استبدال "X" ب ++ y مما يجعل ++ y مضروبا في آخر ++ y. وهذا يجعل ما مجموعه 5 * 6 وهذا هو 30 لا 6. ستة سيكون الأساسي ولكن إجابة خاطئة.

الآن، وحدات الماكرو قد تسبب علة هنا. لذلك تأتي وظيفة مضمنة للانقاذ من خلال نسخ القيم إلى ذاكرة المجمعين ثم تجميعها.

ملخص:

1. تقوم الدالة المضمنة بإنشاء نسخة من تعريف الدالة.

2. يستبدل الماكرو النص كما تم تعريفه وتعريفه داخل الدالة.

3. يتم تطبيق الدالة المضمنة أيضا عندما يكون من المفترض أن يسبب ماكرو خطأ في البرنامج.