এখানে আমরা enum, const এবং #define-এর মধ্যে পার্থক্য দেখব। এই তিনটি কনস্ট্যান্ট ডিক্লেয়ারেশনে বিভ্রান্তি সৃষ্টি করে। এগুলো কী কী তা নিচে আলোচনা করা হলো।
const বা static const
const হলো কনস্ট্যান্ট টাইপ ডেটা, বা static const হলো কনস্ট্যান্ট কিন্তু স্টোরেজ স্পেসিফায়ার static। তাই প্রোগ্রাম টার্মিনেট হওয়া পর্যন্ত এটি এক্টিভ থাকে, এবং কনস্ট্যান্ট ডেটা আপডেট করা যায় না।
নিচের উদাহরণটি_short টাইপ কাস্টিং দেখাচ্ছে, const-এর উদাহরণ নয়। মূল আর্টিকেলে const-এর উদাহরণ অনুপস্থিত। তবে enum, const, #define-এর পার্থক্য সংক্ষেপে:
- #define: প্রিপ্রসেসর ম্যাক্রো, টাইপ চেকিং নেই, স্কোপ নেই, টেক্সট সাবস্টিটিউশন।
- const: টাইপড কনস্ট্যান্ট, স্কোপ মেনে চলে, টাইপ চেকিং হয়, ডিবাগারে দেখা যায়।
- enum: ইন্টিজার কনস্ট্যান্ট গ্রুপ, টাইপ সেফটি বেশি, ডিবাগারে ভ্যালু দেখা যায়, স্কোপ থাকে।
সাধারণত, টাইপ সেফটি এবং স্কোপের জন্য const বা enum প্রিয়। #define শুধু প্রিপ্রসেসর-লেভেল সাবস্টিটিউশনের জন্য।