কম্পিউটার

একটি উদাহরণ সহ C-তে উদ্বায়ী এবং সীমাবদ্ধ টাইপ কোয়ালিফায়ার ব্যাখ্যা করুন


টাইপ কোয়ালিফায়াররা সি প্রোগ্রামিং ল্যাঙ্গুয়েজে বিদ্যমান ডেটা টাইপগুলিতে বিশেষ বৈশিষ্ট্য যোগ করে।

একটি উদাহরণ সহ C-তে উদ্বায়ী এবং সীমাবদ্ধ টাইপ কোয়ালিফায়ার ব্যাখ্যা করুন

C ভাষায় তিন ধরনের কোয়ালিফায়ার রয়েছে এবং উদ্বায়ী এবং সীমাবদ্ধ টাইপ কোয়ালিফায়ারগুলি নীচে ব্যাখ্যা করা হয়েছে -

অস্থির

একটি ভোলাটাইল টাইপ কোয়ালিফায়ার কম্পাইলারকে বলতে ব্যবহৃত হয় যে একটি ভেরিয়েবল শেয়ার করা হয়েছে। অর্থাৎ, একটি ভেরিয়েবলকে উদ্বায়ী হিসাবে ঘোষণা করা হলে অন্য প্রোগ্রাম (বা) সত্তা দ্বারা উল্লেখ এবং পরিবর্তন করা যেতে পারে।

উদাহরণস্বরূপ, উদ্বায়ী int x;

সীমাবদ্ধ

এটি শুধুমাত্র পয়েন্টার দিয়ে ব্যবহার করা হয়। এটি নির্দেশ করে যে পয়েন্টারটি শুধুমাত্র ডিফারেন্স ডেটা অ্যাক্সেস করার একটি প্রাথমিক উপায়। এটি অপ্টিমাইজেশানের জন্য কম্পাইলারকে আরও সহায়তা প্রদান করে।

উদাহরণ প্রোগ্রাম

উদ্বায়ী টাইপ কোয়ালিফায়ার -

-এর জন্য C প্রোগ্রামটি নিচে দেওয়া হল
   int *ptr
   int a= 0;
   ptr = &a;
   ____
   ____
   ____
      *ptr+=4; // Cannot be replaced with *ptr+=9
   ____
   ____
   ____
      *ptr+=5;

এখানে, কম্পাইলার দুটি স্টেটমেন্ট *ptr+=4 এবং *ptr+=5 একটি স্টেটমেন্ট *ptr+=9 দ্বারা প্রতিস্থাপন করতে পারে না। কারণ, ভেরিয়েবল 'a' অন্য পয়েন্টারের মাধ্যমে সরাসরি (বা) অ্যাক্সেস করা যায় কিনা তা স্পষ্ট নয়৷

উদাহরণস্বরূপ,

   restrict int *ptr
   int a= 0;
   ptr = &a;
   ____
   ____
   ____
      *ptr+=4; // Can be replaced with *ptr+=9
   ____
   ____
      *ptr+=5;
____
   ____
দিয়ে প্রতিস্থাপন করা যেতে পারে

এখানে, কম্পাইলার দুটি স্টেটমেন্টকে একটি স্টেটমেন্ট দ্বারা প্রতিস্থাপন করতে পারে, *ptr+=9। কারণ, এটা নিশ্চিত যে অন্য কোনো রিসোর্সের মাধ্যমে ভেরিয়েবল অ্যাক্সেস করা যাবে না।

উদাহরণ

সীমাবদ্ধ কীওয়ার্ড −

ব্যবহারের জন্য সি প্রোগ্রামটি নিচে দেওয়া হল
#include<stdio.h>
void keyword(int* a, int* b, int* restrict c){
   *a += *c;
   // Since c is restrict, compiler will
   // not reload value at address c in
   // its assembly code.
   *b += *c;
}
int main(void){
   int p = 10, q = 20,r=30;
   keyword(&p, &q,&r);
   printf("%d %d %d", p, q,r);
   return 0;
}

আউটপুট

যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -

40 50 30

  1. সি ভাষায় মনোলিথিক ও মডুলার প্রোগ্রামিং ব্যাখ্যা কর

  2. সি ভাষায় লুপ কন্ট্রোল স্টেটমেন্ট কি কি? ফ্লো চার্ট ও প্রোগ্রাম দিয়ে ব্যাখ্যা কর

  3. ইমেজ অ্যারে কি? C++ এ একটি উদাহরণ দিয়ে ব্যাখ্যা করুন

  4. C# এ মানের প্রকার এবং রেফারেন্স প্রকারগুলি ব্যাখ্যা করুন এবং বৈসাদৃশ্য করুন