logo

Тип података распони и њихови макроики у Ц ++

Већина времена у такмичарском програмирању постоји потреба да се променљива додијели максималну или минималну вредност коју тип података може да држи, али сећање на тако велики и прецизан број излази на тежак посао. Због тога Ц ++ има одређене макронаредбу да представљају ове бројеве како би се они могли директно доделити променљивој без да упише цео број.

Тхе датотека заглавља у Ц ++ дефинише макроике које представљају горњу и доњу границу целих врста података и Дефинише макрое за плутање и двоструке границе. Ови макронире омогућавају вам да лако доделите ове екстремне вредности променљивим без да их ручно куцате.



Погледајмо пример:

C++
#include    // for int char macros #include  // for float double macros #include  using namespace std; int main() {    // Displaying ranges with the help of macros  cout << 'char ranges from: ' << CHAR_MIN << ' to '  << CHAR_MAX << endl;  cout << 'nnshort int ranges from: ' << SHRT_MIN  << ' to ' << SHRT_MAX << endl;  cout << 'nint ranges from: ' << INT_MIN << ' to '  << INT_MAX << endl;  cout << 'nlong int ranges from: ' << LONG_MIN << ' to '  << LONG_MAX << endl;  cout << 'nfloat ranges from: ' << FLT_MIN << ' to '  << FLT_MAX << endl;  return 0; } 


Излаз

саира бану глумац
char ranges from: -128 to 127  

nshort int ranges from: -32768 to 32767

int ranges from: -2147483648 to 2147483647

long int ranges from: -9223372036854775808 to 9223372036854775807

float ranges from: 1.17549e-38 to 3.40282e+38

Врсте података и њихов макроизреник

Доље је наведена листа неких макронапита података података:



Тип података

Домет

Макро за мин вредност



Макро за максималну вредност

покрити цхар

-128 до +127

Цхар_мин

Цхар_мак

кратак цхар

-128 до +127

Сцхар_мин

Сцхар_мак

непотписани цхар

0 до 255

-

Флиинг_Мак

кратак инт

-32768 до +32767

Схрт_мин

Схрт_мак

непотписани кратки инт

0 до 65535

-

Усхрт_мак

уметнути

-2147483648 до +2147483647

Инт_мин

Инт_мак

непотписани инт

0 до 4294967295

-

Уинт_мак

дуги инт

-9223372036854775808 до +9223372036854775807

Лонг_мин

Лонг_мак

ненаписани дуги инт

0 до 18446744073709551615

-

Усонг_мак

дуги дуги

-9223372036854775808 до +9223372036854775807

Схип_мин

инт у низу

Ллонг_мак

недовољни дуги дугачак инт

0 до 18446744073709551615

-

Уллонг_мак

пловак

1.17549Е-38 до 3.40282Е + 38

Флт_мин

Флт_мак

Флоат (негативно)

-1.17549Е-38 до -3.40282е + 38

-ЛТ_МИН

'примов алгоритам'

-Флт_мак

удвостручити

2.22507Е-308 до 1.79769Е + 308

Дбл_мин

Дбл_мак

Двоструки (негативан)

-2.22507Е-308 до -1.79769Е + 308

-Дбл_мин

-Дбл_мак

Ограничења типа података у модерном Ц ++

Горњи макро приступ горњим и доњим границама типа података је стари Ц језик Ц наслеђен Ц ++. Али Ц ++ такође има своју методу да пруже програмере са истим информацијама.

Ц ++ нуди нумериц_лимитс<> Теблови класе као модерне алтернативе овим макроима. Овај предложак пружа више објектно оријентисано приступ за приступ ограничењима типа података. Дефинише се унутар Филе заглавља.

Погледајмо пример:

C++
#include    #include  using namespace std; int main() {    // Displaying ranges with the help of macros  cout << 'short int ranges from: ' << numeric_limits<short int>::min()  << ' to ' << numeric_limits<short int>::max() << endl;  cout << 'nint ranges from: ' << numeric_limits<int>::min() << ' to '  << numeric_limits<int>::max() << endl;  cout << 'nlong int ranges from: ' << numeric_limits<long>::min() << ' to '  << numeric_limits<long>::max() << endl;  cout << 'nfloat ranges from: ' << numeric_limits<float>::min() << ' to '  << numeric_limits<float>::max() << endl;  return 0; } 


Излаз

short int ranges from: -32768 to 32767  

int ranges from: -2147483648 to 2147483647

long int ranges from: -9223372036854775808 to 9223372036854775807

float ranges from: 1.17549e-38 to 3.40282e+38

Препоручује се употреба овог приступа да бисте пронашли горње и доње границе типа података уместо макронаредби, јер је више сигурна и читљива у поређењу са макро-системом.