প্রদত্ত কাজ হলো বিভিন্ন ডেটা টাইপের মেমরি রেঞ্জ বের করা, অর্থাৎ একটি ডেটা টাইপ কতটুকু মান সংরক্ষণ করতে পারে ন্যূনতম মান থেকে সর্বোচ্চ মান পর্যন্ত। ডেটা টাইপের একটি মেমরি রেঞ্জ থাকে যেখানে ডেটার মান সংরক্ষণ করা যায়। বড় রেঞ্জের মান মনে রাখা কঠিন তাই C++-এ এজন্য ম্যাক্রোস রয়েছে, যেগুলো থেকে এই বড় সংখ্যাগুলো সরাসরি ভেরিয়েবলে অ্যাসাইন করা যায় পুরো নাম্বার রেঞ্জ টাইপ না করেই।
উদাহরণ
'char' (সাইনড) হলো ক্যারেক্টার ডেটা টাইপ এবং এর রেঞ্জ -১২৮ থেকে +১২৮ এবং char ডেটা টাইপের রেঞ্জ মান বের করার জন্য ন্যূনতম মানের ম্যাক্রো হলো CHAR_MIN এবং সর্বোচ্চ মানের ম্যাক্রো হলো CHAR_MAX।
এভাবেই আমরা MIN এবং MAX ম্যাক্রোস ব্যবহার করে যেকোনো ডেটা টাইপের রেঞ্জ বের করতে পারি, যেমন 'int'-এর জন্য আমরা INT_MIN এবং INT_MAX ব্যবহার করতে পারি।
char-এর রেঞ্জ
-128 থেকে +127
int-এর রেঞ্জ
-2147483648 থেকে +2147483647
উদাহরণ
ডেটা টাইপের ম্যাক্রোস প্রদর্শন করার C++ কোড
#include <iostream>
#include <float.h>
#include <limits.h>
using namespace std;
int main() {
cout << " Range of Char :" << CHAR_MIN << " to " << CHAR_MAX;
cout << " Range of int :" << INT_MIN << " to " << INT_MAX;
cout << " Range of float :" << FLT_MIN << " to " << FLT_MAX;
cout << " Range of double :" << DBL_MIN << " to " << DBL_MAX;
cout << " Range of short char :" << SCHAR_MIN << " to " << SCHAR_MAX;
cout << " Range of Unsigned Char :" << 0 << " to " << UCHAR_MAX;
cout << " Range of long int :" << LONG_MIN << " to " << LONG_MAX;
cout << " Range of Unsigned int :" << 0 << " to " << UINT_MAX;
cout << " Range of short int :" << SHRT_MIN << " to " << SHRT_MAX;
cout << " Range of float Negative :" << -FLT_MIN << " to " << -FLT_MAX;
cout << " Range of double negative:" << -DBL_MIN << " to " << -DBL_MAX;
return 0;
}
আউটপুট
Range of char: -128 to 127 Range of int: -2147483648 to 2147483647 Range of float: 1.17549e-38 to 3.40282e+38 Range of double: 2.22507e-308 to 1.79769e+308 Range of Short char: -128 to 127 Range of Unsigned Char: 0 to 255 Range of long int: -9223372036854775808 to 9223372036854775807 Range of Unsigned int: 0 to 4294967295 Range of Short int: -32768 to 32767 Range of float negative: -1.17549e-38 to -3.40282e+38 Range of double negative: -2.22507e-308 to -1.79769e+308