স্থানীয় এবং গ্লোবাল ভেরিয়েবলের মধ্যে পার্থক্য
কন্টেন্ট
যেমনটি আমরা আগে আলোচনা করেছি, একটি ভেরিয়েবল একটি নাম যা মেমরির অবস্থানে দেওয়া হয় এবং এটি ব্যবহারের আগে এটি অবশ্যই ঘোষণা করতে হবে। সি তে, সমস্ত চলক প্রোগ্রামের শুরুতে ঘোষণা করা হয়। সি ++ এ, ভেরিয়েবলগুলি নির্দেশাবলীতে ব্যবহারের আগে যে কোনও সময় ঘোষিত হতে পারে।
ভেরিয়েবলগুলিকে ‘স্থানীয়’ এবং ‘গ্লোবাল’ ভ্যারিয়েবলে শ্রেণিবদ্ধ করা হয়, যা আমাদের আলোচনার মূল বিষয়। এখানে স্থানীয় এবং গ্লোবাল ভেরিয়েবলের মধ্যে প্রধান পার্থক্য হ'ল একটি ফাংশন ব্লকের ভিতরে একটি স্থানীয় ভেরিয়েবল ঘোষিত হয়। বিপরীতে, গ্লোবাল ভেরিয়েবল প্রোগ্রামে কর্মের বাইরে ঘোষণা করা হয়।
আসুন একটি তুলনামূলক চার্টের সাথে স্থানীয় এবং বৈশ্বিক ভেরিয়েবলের মধ্যে আরও কিছু পার্থক্য অধ্যয়ন করি।
- তুলনা রেখাচিত্র
- সংজ্ঞা
- মূল পার্থক্য
- সুবিধাদি
- অসুবিধেও
- উপসংহার
তুলনা রেখাচিত্র:
COMPARISON জন্য বেস | স্থানীয় বৈচিত্র্য | গ্লোবাল বৈচিত্র্য |
---|---|---|
ঘোষণা | ভেরিয়েবলগুলি একটি ফাংশনের ভিতরে ঘোষণা করা হয়। | ভেরিয়েবলগুলি কোনও ফাংশনের বাইরে ঘোষণা করা হয়। |
ব্যাপ্তি | একটি ফাংশনের মধ্যে, যার ভিতরে সেগুলি ঘোষণা করা হয়। | পুরো কর্মসূচী জুড়ে। |
মান | একচেটিয়া স্থানীয় ভেরিয়েবলের ফলে আবর্জনার মান সংরক্ষণ করা যায়। | অবিশ্রুত বিশ্বব্যাপী পরিবর্তনশীল ডিফল্টরূপে শূন্য সঞ্চয় করে। |
প্রবেশ | কেবলমাত্র বিবৃতি দ্বারা অ্যাক্সেস করা হয়, কোনও ক্রিয়াকলাপের মধ্যে যেখানে তারা ঘোষিত হয়। | পুরো প্রোগ্রামের যে কোনও বিবৃতি দ্বারা অ্যাক্সেস করা হয়েছে। |
তথ্য আদান প্রদান | সরবরাহ করা হয়নি | সুগম |
জীবন | ফাংশন ব্লক প্রবেশ করানো এবং প্রস্থানের পরে ধ্বংস হয়ে গেলে তৈরি করা হয়েছিল। | আপনার প্রোগ্রামটি কার্যকর হওয়ার পুরো সময় অস্তিত্বে থাকবে। |
সংগ্রহস্থল | স্থানীয় ভেরিয়েবলগুলি স্ট্যাকের মধ্যে নির্দিষ্ট না করা পর্যন্ত সংরক্ষণ করা হয়। | একটি সংকলক দ্বারা স্থির স্থির স্থানে সঞ্চিত। |
প্যারামিটার পাস হচ্ছে | প্রয়োজনীয়ভাবে প্রয়োজন | গ্লোবাল ভেরিয়েবলের জন্য প্রয়োজন হয় না। |
একটি পরিবর্তনশীল মান পরিবর্তন | লোকাল ভেরিয়েবলটিতে অন্তর্ভুক্ত যে কোনও পরিবর্তন প্রোগ্রামের অন্যান্য ক্রিয়াকলাপগুলিকে প্রভাবিত করে না। | কোনও ফাংশনের গ্লোবাল ভেরিয়েবলে প্রয়োগিত পরিবর্তনগুলি পুরো প্রোগ্রামের পরিবর্তনগুলি প্রতিফলিত করে। |
স্থানীয় পরিবর্তনশীল সংজ্ঞা
একজন স্থানীয় পরিবর্তনশীল সর্বদা একটি ফাংশন ব্লকের ভিতরে ঘোষণা করা হয়। সি-তে, কোনও কোড ব্লকের শুরুতে একটি স্থানীয় ভেরিয়েবল ঘোষণা করা হয়। সি ++ এ তাদের ব্যবহারের আগে কোড ব্লকের যে কোনও জায়গায় ঘোষণা করা যেতে পারে। স্থানীয় ভেরিয়েবলগুলি কেবলমাত্র কোনও ফাংশনের ভিতরে লিখিত বিবৃতি দ্বারা অ্যাক্সেস করা যেতে পারে যেখানে স্থানীয় ভেরিয়েবলগুলি ঘোষিত হয়। তারা এই অর্থে সুরক্ষিত যে একই প্রোগ্রামের অন্য কোনও ক্রিয়াকলাপে তাদের অ্যাক্সেস করা যায় না।
ফাংশনটির ব্লকটি কার্যকর হওয়ার আগ পর্যন্ত স্থানীয় পরিবর্তনশীল উপস্থিত রয়েছে এবং ফলশ্রুতিটি ব্লক থেকে বেরিয়ে যাওয়ার পরে ধ্বংস হয়ে যায়। স্থানীয় ভেরিয়েবলগুলি কার্যকরভাবে নির্ধারিত ব্লকটি ছেড়ে যাওয়ার সাথে সাথে তাদের সামগ্রী হারাবে।
এর পেছনের কারণ হ'ল স্থানীয় ভেরিয়েবলগুলি স্ট্যাকের উপরে সংরক্ষণ করা হয় যদি না তাদের বিশেষ স্টোরেজ নির্দিষ্ট করা থাকে। স্ট্যাকটি প্রকৃতির গতিশীল, এবং মেমরির অবস্থানের পরিবর্তনের কারণে কোনও ফাংশনের ব্লক উপস্থিত হওয়ার সাথে সাথে স্থানীয় ভেরিয়েবল তাদের মান ধরে না রাখার কারণ নিয়ে আসে।
বিঃদ্রঃ:
তবে, ‘স্ট্যাটিক’ সংশোধক ব্যবহার করে স্থানীয় ভেরিয়েবলের মান ধরে রাখার একটি উপায় রয়েছে।
গ্লোবাল ভেরিয়েবলের সংজ্ঞা
একজন গ্লোবাল ভেরিয়েবল একটি প্রোগ্রাম উপস্থিত সমস্ত ফাংশন বাইরে ঘোষণা করা হয়। স্থানীয় ভেরিয়েবলের বিপরীতে, গ্লোবাল ভেরিয়েবল কোনও প্রোগ্রামে উপস্থিত কোনও ফাংশন দ্বারা অ্যাক্সেস করা যায়। গ্লোবাল ভেরিয়েবলগুলি খুব নির্ভরযোগ্য নয় কারণ প্রোগ্রামে উপস্থিত কোনও ফাংশন দ্বারা তাদের মান পরিবর্তন করা যায় can
পুরো প্রোগ্রামটি সম্পূর্ণরূপে সম্পাদিত না হওয়া পর্যন্ত এগুলি অস্তিত্ব থাকে। প্রোগ্রামটি কার্যকর না হওয়া পর্যন্ত গ্লোবাল ভেরিয়েবলগুলি তাদের মান বজায় রাখে। কারণটি হ'ল এগুলি মেমরির একটি স্থির অঞ্চলে সংরক্ষণ করা হয়, সংকলক দ্বারা সিদ্ধান্ত নেওয়া হয়।
গ্লোবাল ভেরিয়েবল এমন পরিস্থিতিতে সহায়ক যেখানে একাধিক ফাংশন একই ডেটা অ্যাক্সেস করে। বিপুল সংখ্যক বৈশ্বিক ভেরিয়েবল ব্যবহার করা সমস্যাযুক্ত হতে পারে, কারণ বৈশ্বিক চলকের মানটিতে অযাচিত পরিবর্তন হতে পারে be
- স্থানীয় ভেরিয়েবলগুলিকে ‘স্থানীয়’ বলা হয় কারণ এগুলি কেবলমাত্র কোনও ফাংশনে লিখিত বিবৃতিগুলির সাথে পরিচিত যা সেগুলি ঘোষিত হয় এবং সেই ফাংশন ব্লকের বাইরে উপস্থিত অন্য কোনও ফাংশনের সাথে পরিচিত হয় না। গ্লোবাল ভেরিয়েবলের ক্ষেত্রে, তারা একটি প্রোগ্রামে উপস্থিত প্রতিটি কার্যক্রমে পরিচিত; তাই তাদেরকে ‘গ্লোবাল’ বলা হয়।
- প্রোগ্রামটি কার্যকরকরণের পর্যায়ে না আসা পর্যন্ত গ্লোবাল ভেরিয়েবলগুলি তাদের মান ধরে রাখে, কারণ তারা সংকলক দ্বারা নির্ধারিত স্থির স্থানে সংরক্ষণ করা হয়। স্থানীয় ভেরিয়েবলগুলি স্ট্যাকের মধ্যে সংরক্ষণ করা হয়; সুতরাং, তারা তাদের মান ধরে রাখে না কারণ ‘স্ট্যাক’ প্রকৃতির গতিশীল, তবে সংকলককে ‘স্ট্যাটিক’ সংশোধক ব্যবহার করে তাদের মান ধরে রাখতে নির্দেশনা দেওয়া যেতে পারে।
- যদি কোনও গ্লোবাল এবং স্থানীয় ভেরিয়েবল একই নামের সাথে ঘোষিত হয় তবে কোনও কোড ব্লকের সমস্ত বিবৃতি যেখানে স্থানীয় ভেরিয়েবল ঘোষিত হয় কেবল স্থানীয় ভেরিয়েবলের জন্য উল্লেখ করা হবে এবং বৈশ্বিক ভেরিয়েবলের কোনও প্রভাব ফেলবে না।
- প্রোগ্রামের নিয়ন্ত্রণ যখন ব্লক থেকে স্থানীয় ভেরিয়েবল ঘোষিত হয় এর বাইরে বেরোনোর পরে একটি স্থানীয় ভেরিয়েবল ধ্বংস হয়। যাইহোক, পুরো প্রোগ্রামটি বন্ধ হয়ে গেলে একটি গ্লোবাল ভেরিয়েবল নষ্ট হয়ে যায়।
সুবিধাদি
স্থানীয় পরিবর্তনশীল
- স্থানীয় ভেরিয়েবলের প্রধান সুবিধা হ'ল ডেটাটির কোনও দুর্ঘটনাজনিত পরিবর্তন নেই। ভেরিয়েবলটি একটি ব্লকের অভ্যন্তরে ঘোষণা করা হয় এবং কোডগুলির এই ব্লকটি ভেরিয়েবলটি ব্যবহার করে এবং অবাঞ্ছিত পার্শ্ব প্রতিক্রিয়া এড়ায়।
- স্থানীয় ভেরিয়েবল সীমিত পরিমাণের জন্য স্মৃতি গ্রহণ করে, কেবলমাত্র যখন ভেরিয়েবলযুক্ত ব্লকটি কার্যকর করা হয়।
গ্লোবাল ভেরিয়েবল
- আপনি যখন একই ডেটা ম্যানিপুলেট করে প্রোগ্রামে বিভিন্ন ফাংশন নিয়ে কাজ করছেন তখন গ্লোবাল ভেরিয়েবলগুলি খুব কার্যকর are
- পুরো প্রোগ্রামটিতে যে পরিবর্তনগুলি প্রয়োগ করা প্রয়োজন তা বৈশ্বিক পরিবর্তনশীল প্রয়োগের মাধ্যমে আরও সহজ হবে।
- আমরা কোথাও বা প্রোগ্রামের যেকোন র্যান্ডম ফাংশনের মাধ্যমে অ্যাক্সেস করতে পারি।
অসুবিধেও
স্থানীয় পরিবর্তনশীল
- স্থানীয় ভেরিয়েবলের ক্ষেত্র সীমাবদ্ধ।
- নিষিদ্ধ ডেটা ভাগ করে নেওয়া।
- তারা কলগুলির মধ্যে ডেটা ধরে রাখতে সক্ষম হয় না কারণ স্থানীয় ভেরিয়েবলগুলি প্রতিটি এন্ট্রি সহ উত্পন্ন এবং সরানো হয় এবং ব্লক থেকে প্রস্থান করে। তবে মানগুলি ধরে রাখতে স্ট্যাটিক মডিফায়ার ব্যবহার করা যেতে পারে।
গ্লোবাল ভেরিয়েবল
- বিপুল সংখ্যক গ্লোবাল ভেরিয়েবল ব্যবহারের ফলে প্রোগ্রামের ত্রুটি উত্পন্ন হতে পারে।
- এটির মূল সমস্যাটি হ'ল পুরো প্রোগ্রাম জুড়ে ছড়িয়ে পড়া বৈশ্বিক ভেরিয়েবলের কারণে পরিবর্তনগুলির দুর্ঘটনাজনিত ঘটনা।
- এটি কোড রিফ্যাক্টরিং পরিচালনার প্রয়োজনীয়তাও বাড়িয়ে তুলতে পারে, এটি একটি খুব বিস্তৃত প্রক্রিয়া যেখানে পুরো প্রোগ্রামের কোডটি পুনর্গঠন করা হয়।
উপসংহার:
প্রোগ্রামটি লেখার সময় স্থানীয় এবং গ্লোবাল ভেরিয়েবল উভয়ই প্রয়োজনীয় এবং সমানভাবে প্রয়োজনীয়। তবে, একটি বৃহত সংখ্যক গ্লোবাল ভেরিয়েবলগুলি ঘোষণা করা একটি বিশাল প্রোগ্রামে সমস্যাযুক্ত হতে পারে, কারণ এটি একটি বৈশ্বিক চলকটিতে অযাচিত পরিবর্তন ঘটাতে পারে; এবং কোনও প্রোগ্রামের কোন অংশে সেই পরিবর্তন ঘটেছে তা সনাক্ত করা শক্ত হয়ে উঠবে। অতএব, অপ্রয়োজনীয় বৈশ্বিক চলক ঘোষণা করা এড়ানো উচিত।