সি প্রোগ্রামিং এ স্ট্যাটিক

Static C Programming



এই টিউটোরিয়ালে, আমরা স্ট্যাটিক কীওয়ার্ডকে ভেরিয়েবল এবং ফাংশনে প্রয়োগ করে ব্যাখ্যা করব। স্ট্যাটিক হল সি প্রোগ্রামিং -এ ব্যবহৃত একটি কীওয়ার্ড, এবং এটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে প্রয়োগ করা যেতে পারে:

স্ট্যাটিক {ডেটা টাইপ} {ভেরিয়েবল নাম}







স্ট্যাটিক স্থানীয় ভেরিয়েবল

যখন একটি ফাংশনে একটি ভেরিয়েবল স্ট্যাটিক হয়, ভেরিয়েবল ফাংশন কলগুলির মধ্যে তার মান সংরক্ষণ করে।



// উদাহরণ 1. সি

#অন্তর্ভুক্ত

intমজা 1()
{

intগণনা=0;
গণনা++;
প্রত্যাবর্তনগণনা;
}

intমজা 2()
{
স্থির intগণনা=0;
গণনা++;
প্রত্যাবর্তনগণনা;
}

intপ্রধান()
{
printf ('fun1 প্রথম কল রিটার্ন: %dn',মজা 1());
printf ('fun1 দ্বিতীয় কল রিটার্ন: %dnn',মজা 1());

printf ('fun2 প্রথম কল রিটার্ন: %dn',মজা 2());
printf ('fun2 দ্বিতীয় কল রিটার্ন: %dn',মজা 2());

প্রত্যাবর্তন 0;
}


উদাহরণ 1.c এ, আমাদের দুটি ফাংশন রয়েছে: মজা 1 () এবং মজা 2 () । ভিতরে মজা 1 () । ব্যবহার প্রধান () , আমরা কল মজা 1 () দুবার, এবং প্রতিবার, 1 এর মান ফেরত দেওয়া হয় কারণ কল করার সময় কাউন্ট ভেরিয়েবল সাফ হয়ে যায় মজা 1 () সম্পন্ন হয়. ভিতরে মজা 2 () আমরা কাউন্ট ভেরিয়েবলকে স্ট্যাটিক ভেরিয়েবল হিসেবে ঘোষণা করেছি। অতএব, এর মান সংরক্ষিত আছে। ব্যবহার প্রধান () , আমরা কল মজা 2 () দুবার: প্রথমবার, 1 এর মান ফেরত দেওয়া হয়, এবং দ্বিতীয়বার, 2 এর মান ফেরত দেওয়া হয়।



স্ট্যাটিক গ্লোবাল ভেরিয়েবল

একটি স্ট্যাটিক গ্লোবাল ভেরিয়েবল অন্যান্য গ্লোবাল ভেরিয়েবলের মতোই আচরণ করে, কিন্তু এটি অন্য C প্রোগ্রাম থেকে অ্যাক্সেস করা যায় না।





স্ট্যাটিক ফাংশন

সি -তে, ফাংশন ডিফল্টরূপে বৈশ্বিক। যাইহোক, যদি আমরা একটি স্ট্যাটিক ফাংশন ঘোষণা করি, তাহলে ফাংশনটি স্থানীয় এবং অন্য সি প্রোগ্রাম থেকে অ্যাক্সেস করা যাবে না।

স্ট্যাটিক ভেরিয়েবলের সূচনা

যদি একটি স্ট্যাটিক ভেরিয়েবল স্পষ্টভাবে আরম্ভ করা না হয়, তাহলে এটি 0 হিসাবে আরম্ভ করা হয়।



// উদাহরণ 2. সি

#অন্তর্ভুক্ত

intপ্রধান()
{
স্থির intআমি;

printf ('I এর মান: %dn',আমি);

প্রত্যাবর্তন 0;
}


Example2.c তে, আমরা একটি স্ট্যাটিক ভেরিয়েবল i ঘোষণা করেছি যা আরম্ভ করা হয়নি। যাইহোক, কারণ ভেরিয়েবলটি স্ট্যাটিক, এটি স্বয়ংক্রিয়ভাবে 0 থেকে শুরু হয়।

এটি লক্ষ করা গুরুত্বপূর্ণ যে একটি স্থির পরিবর্তনশীল একটি ধ্রুবক আক্ষরিক দ্বারা আরম্ভ করা আবশ্যক; আমরা একটি স্ট্যাটিক ভেরিয়েবল শুরু করার জন্য একটি ফাংশনের রিটার্ন মান ব্যবহার করতে পারি না।

// উদাহরণ 3. সি

#অন্তর্ভুক্ত

intমজা 1()
{
প্রত্যাবর্তন 5;
}

intপ্রধান()
{
স্থির intআমি=মজা 1();
printf ('I এর মান: %dn',আমি);
প্রত্যাবর্তন 0;
}


Example3.c তে, আমরা রিটার্ন ভ্যালু ব্যবহার করে একটি স্ট্যাটিক ভেরিয়েবল আরম্ভ করার চেষ্টা করি মজা 1 () । যাইহোক, আপনি দেখতে পাচ্ছেন, কোড কম্পাইল করার সময় একটি ত্রুটি ফিরে আসে।

সারসংক্ষেপ

একটি স্ট্যাটিক ভেরিয়েবলের জীবনকাল এবং প্রোগ্রামের জীবনকাল সমান।

যদি একটি স্ট্যাটিক ভেরিয়েবল আরম্ভ করা না হয়, তাহলে এটি 0 এর একটি ডিফল্ট মান নেবে।

একটি গ্লোবাল স্ট্যাটিক ভেরিয়েবল বা স্ট্যাটিক ফাংশন কোন প্রোগ্রাম থেকে অ্যাক্সেসযোগ্য নয় যেটি এটি সংজ্ঞায়িত করা হয়েছে।