logo

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 << '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

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

Desktop.ini가 뭐죠?

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 << '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

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