Static variable
کمپیوٹر پروگرامنگ میں، ایک جامد متغیر ایک متغیر ہے جسے "جامد طور پر" مختص کیا گیا ہے، جس کا مطلب ہے کہ اس کی زندگی (یا "حد") پروگرام کا پورا سلسلہ ہے۔ یہ قلیل مدتی خودکار متغیرات کے برعکس ہے، جن کا اسٹوریج کال اسٹیک پر اسٹیک مختص اور ڈی لوکیٹ کیا جاتا ہے ؛ اور اشیاء کے برعکس، جن کا اسٹوریج متحرک طور پر مختص کیا جاتا ہے اور ہیپ میموری میں ڈی لوکیٹ کیا جاتا ہے۔ متغیر زندگی کے دائرہ کار سے متصادم ہے (جہاں ایک متغیر استعمال کیا جا سکتا ہے): "عالمی" اور "مقامی" دائرہ کار کا حوالہ دیتے ہیں، زندگی کا نہیں، لیکن دائرہ کار اکثر زندگی کا اشارہ کرتا ہے۔ بہت سی زبانوں میں، عالمی متغیرات ہمیشہ جامد ہوتے ہیں، لیکن کچھ زبانوں میں وہ متحرک ہوتے ہیں، جبکہ مقامی متغیرات عام طور پر خودکار ہوتے ہیں، لیکن جامد ہو سکتے ہیں۔ عام طور پر، منسلک پروگرام پر عمل درآمد سے پہلے، مرتب کے وقت میموری کی تقسیم ہے، جو کہ متحرک میموری کی تقسیم یا خودکار میموری کی تقسیم کے برعکس ہے جہاں میموری کو رن ٹائم پر ضرورت کے مطابق مختص کیا جاتا ہے۔ تاریخ کے جامد متغیرات کم از کم ALGOL 60 (1960) کے ہیں، جہاں وہ اپنے متغیرات کے طور پر جانے جاتے ہیں: یہ تعریف ایک جامد متغیر سے باریک بینی سے مختلف ہے: یہ صرف رویے کی وضاحت کرتی ہے، اور اس لیے زندگی بھر، اسٹوریج نہیں: ایک خود متغیر مختص کیا جا سکتا ہے جب کسی فنکشن کو پہلی بار کال کیا جاتا ہے، مثال کے طور پر، پروگرام لوڈ کے وقت کے بجائے۔ ان متغیرات کا حوالہ دینے کے لیے جامد لفظ کا استعمال کم از کم بی سی پی ایل (1966) سے ہوتا ہے، اور اسے سی پروگرامنگ زبان نے مقبول کیا ہے، جو بی سی پی ایل سے بہت زیادہ متاثر تھی۔ بی سی پی ایل کی تعریف میں لکھا ہے: نوٹ کریں کہ بی سی پی ایل نے ایک "متحرک ڈیٹا آئٹم" کی وضاحت کی ہے جسے اب ایک خودکار متغیر (مقامی، اسٹیک-مختص) کہا جاتا ہے، نہ کہ ڈھیر-مختص اشیاء کے لیے، جو کہ متحرک مختص کی اصطلاح کا موجودہ استعمال ہے۔ جامد کلیدی لفظ سی اور متعلقہ زبانوں میں جامد متغیرات اور دیگر تصورات دونوں کے لیے استعمال ہوتا ہے۔ مطلق ایڈریس ایڈریسنگ موڈ کو صرف جامد متغیرات کے ساتھ استعمال کیا جا سکتا ہے، کیونکہ وہ واحد قسم کے متغیرات ہیں جن کا مقام مرتب کرنے والے کو مرتب کرنے کے وقت معلوم ہوتا ہے۔ جب پروگرام (قابل عمل یا لائبریری) کو میموری میں لوڈ کیا جاتا ہے، تو جامد متغیرات کو پروگرام کے ایڈریس اسپیس کے ڈیٹا سیگمنٹ (اگر شروع کیا گیا ہو)، یا بی ایس ایس سیگمنٹ (اگر شروع نہیں کیا گیا ہو) میں محفوظ کیا جاتا ہے، اور لوڈ کرنے سے پہلے آبجیکٹ فائلوں کے متعلقہ حصوں میں محفوظ کیا جاتا ہے۔ دائرہ کار دائرہ کار اور حد کے لحاظ سے، جامد متغیرات پروگرام کے پورے دور کی حد رکھتے ہیں، لیکن ان کا دائرہ کار زیادہ محدود ہو سکتا ہے۔ ایک بنیادی فرق ایک جامد عالمی متغیر کے درمیان ہے، جس کا دائرہ عالمی ہے اور اس طرح پورے پروگرام میں سیاق و سباق میں ہے، اور ایک جامد مقامی متغیر، جس کا دائرہ مقامی ہے۔ ایک جامد مقامی متغیر مقامی متغیر سے مختلف ہوتا ہے کیونکہ ایک جامد مقامی متغیر کو صرف ایک بار شروع کیا جاتا ہے اس سے کوئی فرق نہیں پڑتا ہے کہ جس فنکشن میں یہ رہتا ہے اسے کتنی بار کال کیا جاتا ہے اور اس کی قیمت برقرار رکھی جاتی ہے اور اس فنکشن پر بہت سی کالوں کے ذریعے قابل رسائی ہوتی ہے جس میں اسے اعلان کیا جاتا ہے، مثال کے طور پر۔ شمار متغیر کے طور پر استعمال کیا جائے۔ ایک جامد متغیر میں ماڈیول کا دائرہ کار یا کچھ متغیر بھی ہو سکتا ہے، جیسے کہ سی میں اندرونی ربط، جو فائل کے دائرہ کار یا ماڈیول کے دائرہ کار کی ایک شکل ہے۔ مثال C میں جامد مقامی متغیر کی ایک مثال: #include <stdio.h> وایڈ فنک () {جامد انٹیک x = 0 ؛// |x | کو |Func | کی پانچ کالوں میں صرف ایک بار شروع کیا جاتا ہے اور متغیر// ان کالوں کے بعد پانچ بار بڑھ جائے گا۔ |x |// کی حتمی قیمت 5 ہوگی۔ x + + ؛ پرنٹ ایف ("% d\n"، x) ؛// آؤٹ پٹ کرتا ہے |x |} انٹی مین () {فنک () ؛// پرنٹ کرتا ہے 1 فنک () ؛// پرنٹ کرتا ہے 2 فنک () ؛// پرنٹ کرتا ہے 3 فنک () ؛// پرنٹ کرتا ہے 4 فنک () ؛// پرنٹ کرتا ہے 5 ریٹرن 0 ؛} آبجیکٹ پر مبنی پروگرامنگ آبجیکٹ پر مبنی پروگرامنگ میں، ایک جامد ممبر متغیر کا تصور بھی ہوتا ہے، جو ایک مستحکم طور پر بیان کردہ کلاس کا "کلاس متغیر" ہوتا ہے، یعنی کسی دی گئی کلاس کا ایک ممبر متغیر جو تمام مثالوں (اشیاء) میں مشترک ہوتا ہے۔ متحرک طور پر متعین کلاس کا کلاس متغیر، ان زبانوں میں جہاں کلاسوں کو رن ٹائم پر بیان کیا جا سکتا ہے، اس وقت مختص کیا جاتا ہے جب کلاس کی وضاحت کی جاتی ہے اور وہ جامد نہیں ہوتی ہے۔ مرتب کے وقت معلوم آبجیکٹ مستقل، جیسے سٹرنگ لیٹرلز، عام طور پر مستحکم طور پر مختص کیے جاتے ہیں۔ آبجیکٹ پر مبنی پروگرامنگ میں، کلاسوں کے ورچوئل میتھڈ ٹیبلز کو عام طور پر مستحکم طور پر مختص کیا جاتا ہے۔ ایک مستحکم طور پر متعین قیمت اس کے دائرہ کار میں عالمی بھی ہو سکتی ہے تاکہ یہ یقینی بنایا جا سکے کہ مستقل مزاجی کے لیے دوڑ کے دوران ایک ہی غیر متغیر قیمت کا استعمال کیا جائے۔ مستقل (کمپیوٹر پروگرامنگ) عالمی متغیر جامد طریقہ تھریڈ-لوکل اسٹوریج نوٹ حوالہ جات C + + پروگرامنگ زبان (خصوصی ایڈیشن) از بجرن اسٹروسٹرپ (ایڈیسن ویزلی، 2000 ؛) میموری مینجمنٹ متغیر (کمپیوٹر سائنس)