مقامی اور عالمی متغیر کے درمیان فرق

مصنف: Laura McKinney
تخلیق کی تاریخ: 1 اپریل 2021
تازہ کاری کی تاریخ: 17 مئی 2024
Anonim
سی میں مقامی اور عالمی متغیر کے درمیان فرق
ویڈیو: سی میں مقامی اور عالمی متغیر کے درمیان فرق

مواد


جیسا کہ ہم نے پہلے بھی تبادلہ خیال کیا ہے ، ایک متغیر ایک نام ہے ، جسے کسی میموری مقام پر دیا جاتا ہے ، اور اسے استعمال کرنے سے پہلے اس کا اعلان کرنا ضروری ہے۔ سی میں ، تمام متغیرات کا اعلان پروگرام کے آغاز پر کیا جاتا ہے۔ C ++ میں ، تغیرات کو ہدایت کے مطابق استعمال کرنے سے پہلے کسی بھی وقت ، کسی بھی وقت اعلان کیا جاسکتا ہے۔

متغیرات کو ’مقامی‘ اور ’عالمی‘ متغیر میں درجہ بند کیا گیا ہے ، جو ہماری بحث کا بنیادی موضوع ہے۔ یہاں مقامی اور عالمی متغیر کے مابین بنیادی فرق یہ ہے کہ فنکشن بلاک کے اندر مقامی متغیر کا اعلان کیا جاتا ہے۔ اس کے برعکس ، عالمی متغیر کا اعلان پروگرام میں افعال سے باہر ہوتا ہے۔

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

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

موازنہ چارٹ:

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

مقامی متغیر کی تعریف

A مقامی متغیر ہمیشہ ایک فنکشن بلاک کے اندر اعلان کیا جاتا ہے۔ C میں ، کوڈ بلاک کے آغاز پر مقامی متغیر کا اعلان کیا جاتا ہے۔ C ++ میں ، ان کے استعمال سے قبل کوڈ بلاک میں کہیں بھی اعلان کیا جاسکتا ہے۔ مقامی متغیرات صرف اس فعل کے اندر لکھے گئے بیانات سے حاصل کی جاسکتی ہیں جس میں مقامی متغیرات کا اعلان کیا جاتا ہے۔ وہ اس معنی میں محفوظ ہیں کہ ، اسی پروگرام کے کسی اور فنکشن کے ذریعہ ان تک رسائی نہیں ہوسکتی ہے۔


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

اس کے پیچھے وجہ یہ ہے کہ مقامی متغیرات کو اسٹیک پر اسٹور کیا جاتا ہے جب تک کہ ان کا خاص اسٹوریج مخصوص نہ ہو۔ یہ اسٹیک فطرت میں متحرک ہے ، اور میموری کی جگہ میں تبدیلی اس وجہ کا باعث بنتی ہے کہ جب کسی فنکشن کا بلاک موجود ہوتا ہے تو مقامی متغیر اپنی قدر نہیں رکھتے ہیں۔

نوٹ:
تاہم ، مقامی جامع کی قدر کو برقرار رکھنے کا ایک طریقہ ہے ‘جامد’ ترمیم کار کا استعمال کرتے ہوئے۔

عالمی متغیر کی تعریف

A عالمی متغیر کسی پروگرام میں موجود تمام افعال سے باہر قرار دیا جاتا ہے۔ مقامی متغیر کے برعکس ، عالمی پروگرام میں کسی بھی فنکشن کے ذریعہ عالمی متغیر تک رسائی حاصل کی جاسکتی ہے۔ عالمی متغیرات زیادہ معتبر نہیں ہیں کیونکہ پروگرام میں موجود کسی بھی فنکشن کے ذریعہ ان کی قیمت کو تبدیل کیا جاسکتا ہے۔


وہ اس وقت تک موجود ہیں جب تک کہ پورا پروگرام مکمل طور پر عمل میں نہ آجائے۔ عالمی متغیر اپنی اقدار کو برقرار رکھتے ہیں جب تک کہ اس پروگرام پر عمل درآمد نہ ہو۔ اس کی وجہ یہ ہے کہ وہ میموری کے ایک مقررہ علاقے پر محفوظ ہیں ، جس کا فیصلہ مرتب نے کیا ہے۔

ایک عالمی متغیر ان حالات میں مددگار ثابت ہوتا ہے جہاں متعدد افعال ایک ہی ڈیٹا تک رسائی حاصل کرتے ہیں۔ عالمی متغیر کی ایک بڑی تعداد کا استعمال مسئلہ بن سکتا ہے ، کیونکہ عالمی متغیر کی قدر میں ناپسندیدہ تبدیلیاں ہوسکتی ہیں۔

  1. مقامی متغیرات کو ’لوکل‘ کہا جاتا ہے کیونکہ وہ صرف ایک تقریب میں لکھے گئے بیانات سے ہی واقف ہوتے ہیں جس کے اندر وہ اعلان کیے جاتے ہیں اور اس فنکشن بلاک کے باہر موجود کسی دوسرے فنکشن سے واقف نہیں ہوتے ہیں۔ عالمی متغیر کی صورت میں ، وہ ایک پروگرام میں موجود ہر فنکشن کے لئے معروف ہیں۔ لہذا ، انھیں ’عالمی‘ کہا جاتا ہے۔
  2. عالمی متغیرات اس وقت تک اپنی قیمت برقرار رکھتے ہیں جب تک کہ عمل درآمد مرحلے میں نہ ہو ، کیونکہ وہ مرتب کرنے والے کے ذریعہ طے شدہ جگہ پر محفوظ ہوجاتے ہیں۔ مقامی متغیرات اسٹیک پر محفوظ ہیں۔ لہذا ، وہ اپنی قدر برقرار نہیں رکھتے کیوں کہ ’اسٹیک‘ فطرت میں متحرک ہے ، لیکن مرتب کرنے والے کو ہدایت کی جاسکتی ہے کہ وہ ، 'جامد' ترمیم کار کا استعمال کرکے اپنی قدر برقرار رکھیں۔
  3. اگر عالمی اور مقامی متغیر کو ایک ہی نام کے ساتھ قرار دیا جاتا ہے تو ، کوڈ بلاک کے تمام بیانات جس میں مقامی متغیر کا اعلان کیا جاتا ہے وہ صرف ایک مقامی متغیر کا حوالہ دیتے ہیں اور عالمی متغیر پر کوئی اثر نہیں ڈالیں گے۔
  4. ایک مقامی متغیر تب ختم ہوجاتا ہے جب پروگرام کا کنٹرول بلاک سے باہر نکل جاتا ہے جس میں مقامی متغیر کا اعلان کیا جاتا ہے۔ تاہم ، جب پوری پروگرام کو ختم کردیا جاتا ہے تو عالمی متغیر کو ختم کردیا جاتا ہے۔

فوائد

مقامی متغیر

  • مقامی متغیر کا بنیادی فائدہ یہ ہے کہ اعداد و شمار میں حادثاتی تغیر نہیں ہے۔ متغیر کو بلاک کے اندر اعلان کیا جاتا ہے ، اور کوڈ کا یہ بلاک متغیر کا استعمال کرتا ہے اور ناپسندیدہ ضمنی اثرات سے بچتا ہے۔
  • مقامی متغیر محدود مدت کے لئے میموری استعمال کرتا ہے ، صرف اس صورت میں جب متغیر پر مشتمل بلاک عمل میں لایا جائے۔

عالمی متغیر

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

نقصانات

مقامی متغیر

  • مقامی متغیر کا دائرہ کار محدود ہے۔
  • ممنوعہ اعداد و شمار کو بانٹنا۔
  • وہ کالوں کے مابین ڈیٹا کو برقرار رکھنے کے قابل نہیں ہیں کیونکہ مقامی اندراجات ہر اندراج کے ساتھ تیار اور ہٹائے جاتے ہیں اور بلاک سے باہر نکلتے ہیں۔ تاہم ، جامد ترمیم کار کو اقدار کو برقرار رکھنے کے لئے استعمال کیا جاسکتا ہے۔

عالمی متغیر

  • بڑی تعداد میں عالمی متغیرات کے استعمال سے پروگرام کی غلطیاں پیدا ہوسکتی ہیں۔
  • سب سے اہم مسئلہ جس کی وجہ سے یہ ہوتا ہے وہ پورے پروگرام میں پھیلائے گئے عالمی متغیرات کی وجہ سے ہونے والی تبدیلیوں کا حادثاتی واقعہ ہے۔
  • اس سے کوڈ ری فیکٹرنگ کے انعقاد کی ضرورت بھی بڑھ سکتی ہے ، جو ایک بہت وسیع عمل ہے جہاں پورے پروگرام کوڈ کی تنظیم نو ہوتی ہے۔

نتیجہ:

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