ภารกิจคือการค้นหาช่วงหน่วยความจำของประเภทข้อมูลต่างๆ ว่าช่วงค่าใดที่ชนิดข้อมูลสามารถเก็บค่าจากค่าต่ำสุดไปยังค่าสูงสุดได้ มีช่วงหน่วยความจำของประเภทข้อมูลที่สามารถจัดเก็บค่าของข้อมูลได้ เป็นการยากที่จะจำช่วงค่าขนาดใหญ่ ดังนั้น C++ จึงมีมาโครสำหรับแทนตัวเลขเหล่านี้ ตั้งแต่มาโครตัวเลขขนาดใหญ่เหล่านี้สามารถกำหนดให้กับตัวแปรได้โดยตรงโดยไม่ต้องพิมพ์ช่วง Number ทั้งหมด
ตัวอย่าง
'char' (ลงนาม) เป็นประเภทข้อมูลอักขระและมีช่วงตั้งแต่ -128 ถึง +128 และมาโครสำหรับค่าต่ำสุด มาโครเพื่อค้นหาค่าช่วงของประเภทข้อมูล char คือ CHAR_MIN และ CHAR_MAX
ในทำนองเดียวกัน เราสามารถค้นหาช่วงของประเภทข้อมูลใดก็ได้โดยใช้มาโคร MIN และ MAX เช่น "int" ที่เราสามารถใช้ INT_MIN และ INT_MAX
ช่วงของอักขระ
128 ถึง +128
ช่วงของ int
-2147483648 ถึง +2147483648
ตัวอย่าง
รหัส C++ เพื่อแสดงมาโครของประเภทข้อมูล
#include<iostream.h> #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 2147483648 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: -922337203685477580 to 922337203685477580 Range of Unsigned int: 0 to 42944967295 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