C ++ میں ان لائن اور میکرو کے درمیان فرق

مصنف: Laura McKinney
تخلیق کی تاریخ: 2 اپریل 2021
تازہ کاری کی تاریخ: 16 مئی 2024
Anonim
High Density 2022
ویڈیو: High Density 2022

مواد


میکرو ایک ہدایت ہے جو اس کی درخواست کے وقت پھیلتی ہے۔ افعال کی تعریف میکرو کی طرح بھی کی جاسکتی ہے۔ اسی طرح ، انلاک کے موقع پر بھی ان لائن افعال میں توسیع ہوتی ہے۔ ان لائن اور میکرو فنکشن کے درمیان ایک بنیادی فرق یہ ہے کہ ان لائن افعال کے دوران توسیع کر رہے ہیں تالیف، اور میکرو جب پروگرام کے ذریعہ عملدرآمد ہوتا ہے تو اس میں اضافہ کیا جاتا ہے پریپروسیسر.

آئیے موازنہ چارٹ کی مدد سے ان لائن اور میکرو کے درمیان فرق کا مطالعہ کرتے ہیں۔

  1. موازنہ چارٹ
  2. تعریف
  3. کلیدی اختلافات
  4. نتیجہ اخذ کرنا

موازنہ چارٹ

موازنہ کی بنیادلائن میںوسیع
بنیادی ان لائن افعال مرتب کرکے تجزیہ کرتے ہیں۔میکرو کو پری پروسیسر کے ذریعہ بڑھایا جاتا ہے۔
نحوان لائن ریٹرن ٹائپ فنکٹ_ نیم (پیرامیٹرز) {۔ . . }# تعی maن میکرو_ نام چار_سکنس
استعمال شدہ مطلوبہ الفاظلائن میں
# تعریف
متعیناس کی وضاحت طبقے کے اندر یا باہر کی ہوسکتی ہے۔پروگرام کی شروعات میں ہی اس کی تعریف کی جاتی ہے۔
تشخیصیہ صرف ایک بار دلیل کا اندازہ کرتا ہے۔ہر بار اس کوڈ میں استعمال ہونے پر دلیل کا اندازہ ہوتا ہے۔
توسیع کے مرتب کرنے والے تمام افعال کو ان لائن اور بڑھا نہیں سکتا ہے۔میکروز ہمیشہ بڑھایا جاتا ہے۔
آٹومیشنمختصر افعال ، کلاس کے اندر بیان کردہ خود بخود ان لائن افعال پر بن جاتے ہیں۔میکروز کو خاص طور پر بیان کیا جانا چاہئے۔
رسائیایک ان لائن ممبر فنکشن کلاس کے ڈیٹا ممبروں تک رسائی حاصل کرسکتا ہے۔میکروس کبھی بھی کلاس کے ممبر نہیں ہوسکتے ہیں اور کلاس کے ڈیٹا ممبروں تک رسائی حاصل نہیں کرسکتے ہیں۔
خاتمہان لائن فنکشن کی تعریف ان لائن فنکشن کے اختتام پر گھوبگھرالی خطوط کے ساتھ ختم ہوجاتی ہے۔نئی لائن کے ساتھ ہی میکرو کی تعریف ختم ہوجاتی ہے۔
ٹھیک کرناان لائن فنکشن کیلئے ڈیبگنگ کرنا آسان ہے کیونکہ تالیف کے دوران غلطی کی جانچ پڑتال کی جاتی ہے۔ڈیبگنگ میکروز کے لئے مشکل ہوجاتی ہے کیونکہ تالیف کے دوران غلطی کی جانچ پڑتال نہیں ہوتی ہے۔
پابندایک ان لائن فنکشن فنکشن کے باڈی میں موجود تمام بیانات کو بہت اچھی طرح سے باندھتا ہے اور فنکشن کے باڈی کے جسم کے ساتھ ساتھ گھوبگھرالی خطوط وحدانی سے ختم ہوتا ہے۔ایک میکرو کو پابند مسئلہ کا سامنا کرنا پڑتا ہے اگر اس میں ایک سے زیادہ بیانات ہوں ، کیونکہ اس میں ختم ہونے کی علامت نہیں ہے۔


ان لائن کی تعریف

ایک ان لائن فنکشن ایک باقاعدہ فنکشن کی طرح لگتا ہے لیکن ، اس سے پہلے کی ورڈ “لائن میں“۔ ان لائن افعال مختصر لمبائی کے افعال ہوتے ہیں جن کو طلب کرنے کے بجائے اس کی درخواست کے موقع پر بڑھا دیا جاتا ہے۔ آئیے ایک مثال کے ساتھ ان لائن افعال کو سمجھیں۔

# شامل کریں نام کی جگہ ایس ٹی ڈی کا استعمال کرتے ہوئے؛ کلاس مثال {انٹ اے ، بی؛ عوامی: ان لائن صفر شروع (int x، int y) {a = x؛ b = y} باطل ڈسپلے () out cout << a << "" <

مندرجہ بالا پروگرام میں ، میں نے اعلان کیا اور بیان کیا ، فنکشن ابتداء () ، کلاس میں ایک ان لائن فنکشن کے طور پر "مثال"۔ ابتداء () فنکشن کا کوڈ پھیل جائے گا جہاں اسے کلاس "مثال" کے آبجیکٹ کے ذریعہ طلب کیا گیا ہے۔ فنکشن ڈسپلے () ، کلاس مثال میں بیان کردہ نہیں ہے لیکن اس کو مرتب کرنے والے کے ذریعہ ان لائن سمجھا جاسکتا ہے ، جیسا کہ C ++ میں کلاس کے اندر بیان کردہ فنکشن خود بخود ان لائن بنا دیا جاتا ہے جس سے کمپلر فنکشن کی لمبائی کو مد نظر رکھتا ہے۔


  • ان لائن فنکشن فنکشن کالنگ اور لوٹنے کے اوور ہیڈ کو کم کرتا ہے جس کے نتیجے میں پروگرام پر عمل درآمد کا وقت کم ہوجاتا ہے۔نیز ، دلائل کو اسٹیک پر دھکیل دیا جاتا ہے اور رجسٹر محفوظ ہوجاتے ہیں جب کسی فنکشن کو بلایا جاتا ہے اور جب فنکشن لوٹتا ہے تو ری سیٹ ہوجاتا ہے ، جس میں وقت لگتا ہے ، ان لائن افعال سے یہ بچ جاتا ہے کیونکہ ہر بار مقامی متغیرات اور رسمی پیرامیٹرز بنانے کی ضرورت نہیں ہوتی ہے۔ .
  • ان لائن افعال کلاس کا ممبر ہوسکتا ہے اور کلاس کے ڈیٹا ممبر تک رسائی حاصل کرسکتا ہے۔
  • ان لائن فنکشن پروگرام کے نفاذ کے وقت کو کم کردیتا ہے لیکن ، بعض اوقات اگر ان لائن فنکشن کی لمبائی اس سے زیادہ ہو تو ، ڈپلیکیٹ کوڈ کی وجہ سے پروگرام کا سائز بھی بڑھ جاتا ہے۔ لہذا ، بہت ہی چھوٹے کاموں کا ان لائن لگانا ایک اچھا عمل ہے۔
  • ان لائن فنکشن کی دلیل کا اندازہ صرف ایک بار کیا جاتا ہے۔

میکرو کی تعریف

میکرو ایک "پری پروسیسرس ہدایت" ہے۔ تالیف سے قبل ، پروگرام کی جانچ پڑتال پری پروسیسر کے ذریعہ کی جاتی ہے اور جہاں بھی اسے پروگرام میں میکرو مل جاتا ہے ، وہ اس میکرو کو اپنی تعریف کے مطابق بدل دیتا ہے۔ لہذا ، میکرو کو "متبادل" کے طور پر سمجھا جاتا ہے۔ آئیے ہم مثال کے ساتھ میکرو کا مطالعہ کرتے ہیں۔

# شامل کریں # تعی Gن عظیم (a ، b) ((a <b)؟ b: a) int main (باطل) out cout << "10 اور 20 کا گریٹر" << GREATER ("20"، "10") << " n"؛ واپسی 0؛ }

مذکورہ کوڈ میں ، میں نے ایک میکرو فنکشن GREATER () کا اعلان کیا ، جو موازنہ کرتا ہے اور دونوں پیرامیٹرز کی زیادہ سے زیادہ تعداد تلاش کرتا ہے۔ آپ مشاہدہ کرسکتے ہیں کہ میکرو کو ختم کرنے کے لئے کوئی سیمکولون نہیں ہے کیونکہ میکرو کو صرف نئی لائن کے ذریعے ختم کیا جاتا ہے۔ چونکہ میکرو صرف ایک متبادل ہے ، لہذا یہ میکرو کے کوڈ کو بڑھا دے گا جہاں اسے طلب کیا گیا ہے۔

  • میکروز کو ہمیشہ دارالحکومت کے خط میں واضح کیا جاتا ہے تاکہ پڑھنے کے دوران پروگرامرز کے لئے پروگرام میں موجود تمام میکروز کی شناخت آسان ہوجائے۔
  • میکرو کبھی بھی کلاس کے ممبر کا فنکشن نہیں ہوسکتا ہے ، اور نہ ہی یہ کسی بھی کلاس کے ڈیٹا ممبروں تک رسائی حاصل کرسکتا ہے۔
  • میکرو فنکشن ہر بار اس کی تعریف میں ظاہر ہونے پر دلیل کا اندازہ کرتا ہے جس کا نتیجہ غیر متوقع ہوتا ہے۔
  • میکرو کا سائز چھوٹا ہونا چاہئے کیونکہ بڑے میکرو کوڈ کے سائز کو غیر ضروری طور پر بڑھا دیں گے۔
  1. ان لائن اور میکرو کے مابین بنیادی فرق یہ ہے کہ ایک ان لائن افعال کو مرتب کرنے والے نے تجزیہ کیا ہے جبکہ ، ایک پروگرام میں میکرو کو پری پروسیسر کے ذریعہ بڑھایا جاتا ہے۔
  2. ان لائن فنکشن کی وضاحت کے لئے استعمال ہونے والا کلیدی لفظ "لائن میں"جبکہ ، میکرو کی تعریف کے لئے استعمال ہونے والا کلیدی لفظ"# تعریف“.
  3. ایک بار جب ان لائن فنکشن کلاس کے اندر سجاوٹ ہوجاتا ہے تو ، اسے کلاس کے اندر یا کسی کلاس سے باہر بھی تعریف کیا جاسکتا ہے۔ دوسری طرف ، پروگرام کے آغاز میں میکرو کی ہمیشہ تعریف کی جاتی ہے۔
  4. ان لائن افعال تک پہنچنے والی دلیل کو صرف ایک بار ہی تشخیص کیا جاتا ہے جبکہ تالیف کرتے ہوئے ، میکرو دلیل کا اندازہ اس وقت کیا جاتا ہے جب ہر بار کوڈ میں میکرو استعمال ہوتا ہے۔
  5. مرتب کلاس کے اندر بیان کردہ تمام افعال کو ان لائن اور بڑھا نہیں سکتا ہے۔ دوسری طرف ، میکروز کو ہمیشہ بڑھایا جاتا ہے۔
  6. ان لائن کلیدی الفاظ کے بغیر کلاس کے اندر جو مختصر فنکشن متعین ہوتا ہے وہ خود بخود ان لائن فنکشنز بن جاتا ہے۔ دوسری طرف ، میکرو کی تعریف خاص طور پر کی جانی چاہئے۔
  7. ایک تقریب جو ان لائن ہوتی ہے وہ کلاس کے ممبروں تک رسائی حاصل کر سکتی ہے جبکہ ، میکرو کبھی بھی کلاس کے ممبروں تک رسائی حاصل نہیں کرسکتا۔
  8. ایک ان لائن فنکشن کو ختم کرنے کے لئے ایک بند گھوبگھرالی منحنی خطوط وحدانی کی ضرورت ہوتی ہے جبکہ ، ایک نئی لائن کے آغاز کے ساتھ ہی میکرو کو ختم کردیا جاتا ہے۔
  9. غیر فعل کیلئے ڈیبگ کرنا آسان ہوجاتا ہے کیونکہ کسی بھی غلطی کی تالیف کے دوران جانچ پڑتال کی جاتی ہے۔ دوسری طرف ، تالیف کرتے وقت میکرو کی جانچ نہیں کی جاتی ہے ، لہذا ، میکرو کو ٹھیک کرنا مشکل ہوجاتا ہے۔
  10. فنکشن ہونے کی وجہ سے ایک ان لائن فنکشن اپنے ممبروں کو شروع اور بند گھوبگھرالی منحنی خطوط وحدانی میں باندھتا ہے۔ دوسری طرف ، میکرو میں کوئی منسوخی کی علامت نہیں ہے ، لہذا پابندی مشکل ہوجاتی ہے جب میکرو میں زیادہ سے زیادہ ایک بیان موجود ہو۔

نتائج:

ان لائن افعال میکرو فنکشن سے کہیں زیادہ قائل ہیں۔ سی ++ کسی مستحکم کی تعریف کرنے کا ایک بہتر طریقہ بھی فراہم کرتا ہے ، جس میں "کانس" کی ورڈ استعمال ہوتا ہے۔