কম্পিউটার

স্ট্যাটিক কনস্ট বনাম # সংজ্ঞায়িত বনাম enum?


"স্ট্যাটিক কনস্ট"

"স্ট্যাটিক কনস্ট" মূলত স্ট্যাটিক (একটি স্টোরেজ স্পেসিফায়ার) এবং কনস্ট (একটি টাইপ কোয়ালিফায়ার) এর সমন্বয়।

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

const হল একটি টাইপ কোয়ালিফায়ার। একটি টাইপ কোয়ালিফায়ার টাইপ সিস্টেমের মাধ্যমে একটি মান সম্পর্কে অতিরিক্ত তথ্য প্রকাশ করতে ব্যবহৃত হয়। যখন একটি ভেরিয়েবল কনস্ট টাইপ কোয়ালিফায়ার ব্যবহার করে আরম্ভ করা হয়, তখন এটি তার মানের আর পরিবর্তন গ্রহণ করবে না।

সুতরাং স্ট্যাটিক এবং কন্সটকে একত্রিত করে, আমরা বলতে পারি যে যখন একটি ভেরিয়েবলকে স্ট্যাটিক কনস্ট ব্যবহার করে আরম্ভ করা হয়, তখন এটি প্রোগ্রামটি কার্যকর না হওয়া পর্যন্ত তার মান বজায় রাখবে এবং এছাড়াও, এটি এর মানতে কোনো পরিবর্তন গ্রহণ করবে না।

উদাহরণ

#include<iostream>
using namespace std;
int main(){
int input = 10;
static const int value = 5;
input += value;
cout << input;
return 0;
}

"#সংজ্ঞায়িত করুন"

প্রিপ্রসেসর কমান্ডগুলিকে নির্দেশিকা বলা হয় এবং একটি পাউন্ড বা হ্যাশ প্রতীক (#) দিয়ে শুরু হয়। # এর আগে কোনো সাদা স্থান উপস্থিত হওয়া উচিত নয় এবং শেষে সেমিকোলনের প্রয়োজন নেই।

অনেক কিছু যা প্রিপ্রসেসিং পর্যায়ে করা যেতে পারে

অন্তর্ভুক্ত
  • #include নির্দেশিকা

    এর মাধ্যমে অন্যান্য ফাইল অন্তর্ভুক্ত করা
  • #define directive

    এর মাধ্যমে প্রতীকী ধ্রুবক এবং ম্যাক্রোর সংজ্ঞা

কিছু প্রিপ্রসেসর নির্দেশের মাধ্যমে আপনি শর্তসাপেক্ষে কিছু প্রিপ্রসেসর নির্দেশিকা কম্পাইল বা এক্সিকিউট করতে পারেন।

দ্রষ্টব্য - একটি C++ প্রোগ্রামের প্রিপ্রসেসিং পর্যায় একটি প্রোগ্রাম সংকলিত হওয়ার আগে ঘটে। C++ প্রিপ্রসেসর হল একটি প্রোগ্রাম যা সোর্স কোড কম্পাইল করার আগে কার্যকর করা হয়।

আপনি ইতিমধ্যে #include প্রিপ্রসেসর নির্দেশের সাথে কাজ করতে শিখেছেন যা আপনাকে আপনার প্রোগ্রামে পছন্দসই হেডার ফাইলগুলি অন্তর্ভুক্ত করতে দেয়। এই আলোচনাটি বা আমাদের আলোচনা #প্রিপ্রসেসর নির্দেশিকাকে সংজ্ঞায়িত করতে৷

#define প্রিপ্রসেসর আমাদেরকে প্রতীকী নাম এবং ধ্রুবক সংজ্ঞায়িত করতে দেয়। উদাহরণস্বরূপ,

#ডিফাইন PI 3.14159

এই বিবৃতিটি প্রোগ্রামে PI-এর প্রতিটি ঘটনাকে 3.14159-এ অনুবাদ করবে৷

C++ #define উদাহরণ

এখন সম্পূর্ণ উদাহরণ বিবেচনা করুন যেখানে PI এর প্রতিটি ঘটনা 3.14159 মান দিয়ে প্রতিস্থাপিত হবে, মানটি #define নির্দেশিকা দিয়ে সংজ্ঞায়িত করা হয়েছে।

Input: PI 3.14159
Output: Area of Circle 314.15

উদাহরণ

#include<iostream>
using namespace std;
#define PI 3.14159
int main() {
   int r = 10;
   float cir;
   cir = PI * (r * r);
   cout<<"Area of Circle: "<<cir<<endl;
}

"enum"

enum হল একটি ব্যবহারকারীর সংজ্ঞায়িত ডেটা টাইপ যেখানে আমরা একটি ভেরিয়েবলের জন্য মানগুলির একটি সেট নির্দিষ্ট করি এবং ভেরিয়েবলটি সম্ভাব্য মানের একটি ছোট সেট থেকে শুধুমাত্র একটি নিতে পারে। আমরা একটি গণনা সংজ্ঞায়িত করতে enum কীওয়ার্ড ব্যবহার করি।

enum direction {East, West, North, South}dir;

এখানে গণনার নাম হল দিক যা শুধুমাত্র চারটি নির্দিষ্ট মানের মধ্যে একটি নিতে পারে, ঘোষণার শেষে ডিরটি একটি enum পরিবর্তনশীল।

এটি বোঝার জন্য একটি সাধারণ উদাহরণ নেওয়া যাক:

এখানে আমি enum ভেরিয়েবল dir-এ West মান নির্ধারণ করেছি এবং যখন আমি dir-এর মান প্রদর্শন করি তখন এটি 1 দেখায়। কারণ ডিফল্টভাবে মানগুলি 0 থেকে শুরু করে ক্রমবর্ধমান ক্রমে থাকে, যার অর্থ পূর্ব হল 0, পশ্চিম হল 1, উত্তর হল 2 এবং দক্ষিণ হল 3৷

Input: direction {East, West, North, South} dir=West
Output: 1

উদাহরণ

#include<iostream>
using namespace std;
enum direction {East, West, North, South} dir;
int main(){
   dir = West;
   cout<<dir;
   return 0;
}

enum ভেরিয়েবল ঘোষণা করার আরেকটি উপায়

আমরা উপরের উদাহরণে দেখেছি যে আমি enum ঘোষণার সময় enum ভেরিয়েবল dir ঘোষণা করেছি, একটি enum ভেরিয়েবল ঘোষণা করার আরেকটি উপায় আছে।

উদাহরণ

#include <iostream>
using namespace std;
enum direction {East, West, North, South};
int main() {
   direction dir;
   dir = South;
   cout<<dir;
   return 0;
}

আউটপুট

3

কেন C++ এ enum ব্যবহার করুন

এখন যেহেতু আমরা বুঝতে পেরেছি যে enum কী এবং কীভাবে সেগুলি প্রোগ্রামে ব্যবহার করতে হয়, আসুন আলোচনা করি কেন আমরা সেগুলি ব্যবহার করি:

Enums শুধুমাত্র তখনই ব্যবহার করা হয় যখন আমরা আশা করি যে ভেরিয়েবলের সম্ভাব্য মানের একটি সেট থাকবে, উদাহরণস্বরূপ, আমাদের কাছে একটি dir ভেরিয়েবল আছে যা দিক নির্দেশ করে। যেহেতু আমাদের চারটি দিকনির্দেশ রয়েছে, এই ভেরিয়েবলটি চারটি মানের যেকোন একটি নিতে পারে, যদি আমরা এই ভেরিয়েবলটিকে অন্য র্যান্ডম মান নির্ধারণ করার চেষ্টা করি, এটি একটি সংকলন ত্রুটি নিক্ষেপ করবে। এটি কম্পাইল-টাইম চেকিং বাড়ায় এবং ভুল ধ্রুবকগুলি পাস করার মাধ্যমে ঘটে যাওয়া ত্রুটিগুলি এড়ায়৷

আরেকটি গুরুত্বপূর্ণ স্থান যেখানে এগুলি প্রায়শই ব্যবহৃত হয় তা হল সুইচ কেস স্টেটমেন্ট, যেখানে কেস ব্লকগুলি যে সমস্ত মানগুলি আশা করে তা একটি enum-এ সংজ্ঞায়িত করা যেতে পারে। এইভাবে আমরা নিশ্চিত করতে পারি যে আমরা সুইচ বন্ধনীতে যে enum ভেরিয়েবলটি পাস করি তা কোনো র্যান্ডম মান নিচ্ছে না যা এটি গ্রহণ করা উচিত নয়।


  1. C++ Enum

  2. জাভাস্ক্রিপ্ট কনস্ট

  3. সংরক্ষিত শব্দের সাথে সংজ্ঞায়িত পরিবর্তনশীল পরিবর্তন করা যেতে পারে - জাভাস্ক্রিপ্ট?

  4. কোথায় এবং কিভাবে সুইফটে স্ট্যাটিক ভেরিয়েবল ব্যবহার করবেন?