C++의 데이터 유형 범위 및 해당 매크로

대부분의 경우 경쟁 프로그래밍에서는 데이터 유형이 보유할 수 있는 최대값 또는 최소값을 변수에 할당해야 하지만 이렇게 크고 정확한 숫자를 기억하는 것은 어려운 작업입니다. 따라서 C++에는 실제로 전체 숫자를 입력하지 않고도 변수에 직접 할당할 수 있도록 이러한 숫자를 나타내는 특정 매크로가 있습니다.

그만큼 C++의 헤더 파일은 정수 데이터 유형의 상한 및 하한을 나타내는 매크로를 정의하고 부동 및 이중 제한에 대한 매크로를 정의합니다. 이러한 매크로를 사용하면 수동으로 입력하지 않고도 이러한 극단값을 변수에 쉽게 할당할 수 있습니다.

예를 살펴보겠습니다.

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      < <     '  n  nshort int ranges from: '      < <     SHRT_MIN       < <     ' to '      < <     SHRT_MAX      < <     endl  ;      cout      < <     '  n  int ranges from: '      < <     INT_MIN      < <     ' to '       < <     INT_MAX      < <     endl  ;      cout      < <     '  n  long int ranges from: '      < <     LONG_MIN      < <     ' to '       < <     LONG_MAX      < <     endl  ;      cout      < <     '  n  float 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

Char_min

CHAR_MAX

짧은 문자

-128 ~ +127

SCHAR_MIN

SCHAR_MAX

서명되지 않은 문자

0~255

--

Flying_max

짧은 정수

-32768 ~ +32767

SHRT_MIN

SHRT_MAX

부호 없는 짧은 정수

0~65535

--

USHRT_MAX

정수

-2147483648 ~ +2147483647

INT_MIN

INT_MAX

부호 없는 정수

0~4294967295

--

UINT_MAX

긴 정수

-9223372036854775808 ~ +9223372036854775807

LONG_MIN

LONG_MAX

부호 없는 긴 정수

0~18446744073709551615

--

우송_맥스

긴 긴 정수

-9223372036854775808 ~ +9223372036854775807

Ship_min

LLONG_MAX

부호 없는 긴 긴 정수

0~18446744073709551615

--

ULLONG_MAX

뜨다

1.17549e-38 ~ 3.40282e+38

Flt_min

FLT_MAX

부동 (음수)

-1.17549e-38 ~ -3.40282e+38

-Lt_min

-FLT_MAX

더블

2.22507e-308 ~ 1.79769e+308

DBL_MIN

DBL_MAX

이중 (음수)

-2.22507e-308 ~ -1.79769e+308

-DBL_MIN

-DBL_MAX

최신 C++의 데이터 유형 제한

데이터 유형의 상한 및 하한에 대한 위의 매크로 접근 방식은 C++에서 상속된 이전 C 언어 접근 방식입니다. 그러나 C++에는 프로그래머에게 동일한 정보를 제공하는 고유한 방법도 있습니다.

C++에서는 다음을 제공합니다. 숫자 제한 <> 이러한 매크로에 대한 현대적인 대안으로 클래스 템플릿을 사용합니다. 이 템플릿은 데이터 유형 제한에 액세스하기 위한 보다 객체 지향적인 접근 방식을 제공합니다. 내부에 정의되어 있습니다. 헤더 파일.

예를 살펴보겠습니다.

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      < <     '  n  int ranges from: '      < <     numeric_limits   <  int  >::  min  ()      < <     ' to '       < <     numeric_limits   <  int  >::  max  ()      < <     endl  ;      cout      < <     '  n  long int ranges from: '      < <     numeric_limits   <  long  >::  min  ()      < <     ' to '       < <     numeric_limits   <  long  >::  max  ()      < <     endl  ;      cout      < <     '  n  float 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

매크로 기반 접근 방식에 비해 유형이 더 안전하고 읽기 쉽기 때문에 매크로 대신 데이터 유형의 상한 및 하한을 찾는 데 이 접근 방식을 사용하는 것이 좋습니다.