기본 제공 형식(C++)

기본 제공 형식(기본 형식이라고도 함)은 C++ 언어 표준에 의해 지정되며 컴파일러에 기본 제공됩니다. 기본 제공 형식은 헤더 파일에 정의되지 않습니다. 기본 제공 형식은 정수, 부동 소수점void의 세 가지 기본 범주로 나뉩니다. 정수 형식은 정수를 나타냅니다. 부동 소수점 형식은 소수 부분이 있을 수 있는 값을 지정할 수 있습니다. 대부분의 기본 제공 형식은 컴파일러에서 고유 형식으로 처리됩니다. 그러나 일부 형식은 동의어이거나 컴파일러에서 동등한 형식으로 처리됩니다.

void 형식

이 형식은 void 빈 값 집합을 설명합니다. 형식 void 의 변수를 지정할 수 없습니다. 이 void 형식은 주로 값을 반환하지 않는 함수를 선언하거나 형식화되지 않거나 임의로 형식화된 데이터에 대한 제네릭 포인터를 선언하는 데 사용됩니다. 모든 식은 void형식으로 명시적으로 변환되거나 캐스팅될 수 있습니다. 그러나 이러한 식은 사용이 다음으로 제한됩니다.

  • 식 문. (자세한 내용은 를 참조하세요 .식.)

  • 쉼표 연산자의 왼쪽 피연산자. (자세한 내용은 를 참조하세요 .쉼표 연산자입니다.)

  • 조건 연산자의 두 번째 또는 세 번째 피연산자(? :)입니다. (자세한 내용은 를 참조하세요 .조건부 연산자를 사용하는 식입니다.)

std::nullptr_t

키워드(keyword) nullptr 모든 원시 포인터 형식으로 변환할 수 있는 형식std::nullptr_t의 null 포인터 상수입니다. 자세한 내용은 nullptr를 참조하세요.

부울 형식

형식에는 booltruefalse. 형식의 bool 크기는 구현에 따라 다릅니다. Microsoft 관련 구현 세부 정보는 기본 제공 형식의 크기를 참조하세요.

문자 형식

형식은 char 기본 실행 문자 집합의 멤버를 효율적으로 인코딩하는 문자 표현 형식입니다. C++ 컴파일러는 char, signed charunsigned char 형식의 변수를 서로 다른 형식으로 처리합니다.

Microsoft 관련: 컴파일 옵션을 사용하지 않는 한 /J 형식 char 의 변수는 기본적으로 형식 signed char 에서 온 것처럼 승격 int 됩니다. 이 경우 형식 unsigned char 으로 처리되고 서명 확장 없이 승격 int 됩니다.

형식 wchar_t 의 변수는 와이드 문자 또는 멀티바이트 문자 형식입니다. L 문자 또는 문자열 리터럴 앞에 접두사를 사용하여 와이드 문자 형식을 지정합니다.

Microsoft 전용: 기본적으로 wchar_t 네이티브 형식이지만 , 에 대한 unsigned shorttypedef를 만드는 wchar_t 데 사용할 /Zc:wchar_t- 수 있습니다. __wchar_t 형식은 네이티브 wchar_t 형식의 Microsoft 전용 동의어입니다.

char8_t 형식은 UTF-8 문자 표현에 사용됩니다. 표현은 같지 unsigned char만 컴파일러에서 고유 형식으로 처리됩니다. char8_t C++20의 새로운 형식입니다. Microsoft 관련: 사용 char8_t 하려면 컴파일러 옵션 이상(예: /std:c++latest)이 필요합니다/std:c++20.

char16_t 형식은 UTF-16 문자 표현에 사용됩니다. UTF-16 코드 단위를 나타낼 수 있을 만큼 커야 합니다. 컴파일러에서 고유 형식으로 처리됩니다.

char32_t 형식은 UTF-32 문자 표현에 사용됩니다. UTF-32 코드 단위를 나타낼 수 있을 만큼 커야 합니다. 컴파일러에서 고유 형식으로 처리됩니다.

부동 소수점 형식

부동 소수점 형식은 IEEE-754 표현을 사용하여 광범위한 크기의 소수 자릿수 값을 근사값으로 제공합니다. 다음 표에서는 C++의 부동 소수점 형식과 부동 소수점 형식 크기에 대한 비교 제한을 나열합니다. 이러한 제한은 C++ 표준에 의해 의무화되며 Microsoft 구현과 독립적입니다. 기본 제공 부동 소수점 형식의 절대 크기는 표준에 지정되지 않습니다.

Type 콘텐츠
float 형식 float 은 C++에서 가장 작은 부동 소수점 형식입니다.
double double 형식은 float형식보다 크거나 같지만 long double형식의 크기보다 짧거나 같은 부동 소수점 형식입니다.
long double long double 형식은 double형식보다 크거나 같은 부동 소수점 형식입니다.

Microsoft 관련: 표현 long doubledouble 동일합니다. 그러나 long doubledouble 컴파일러에서 고유 형식으로 처리됩니다. Microsoft C++ 컴파일러는 4 바이트 및 8 바이트 IEEE-754 부동 소수점 표현을 사용합니다. 자세한 내용은 IEEE 부동 소수점 표현을 참조하세요.

정수 형식

int 이 형식은 기본 기본 정수 형식입니다. 구현별 범위에 대한 모든 정수를 나타낼 수 있습니다.

부인 정수 표현은 양수 값과 음수 값을 모두 보유할 수 있는 정수 표현입니다. 기본적으로 사용되거나 한정자 키워드(keyword) 있는 경우에 signed 사용됩니다. unsigned 한정자 키워드(keyword) 음수가 아닌 값만 보유할 수 있는 부호 없는 표현을 지정합니다.

크기 한정자는 사용된 정수 표현의 너비를 비트 단위로 지정합니다. 언어는 , longlong long 한정자를 지원합니다short. 형식은 short 너비가 16비트 이상이어야 합니다. 형식은 long 너비가 32비트 이상이어야 합니다. 형식은 long long 너비가 64비트 이상이어야 합니다. 표준은 정수 계열 형식 간의 크기 관계를 지정합니다.

1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)

구현은 기본 각 형식에 대한 최소 크기 요구 사항과 크기 관계를 모두 충족해야 합니다. 그러나 실제 크기는 구현마다 다를 수 있습니다. Microsoft 관련 구현 세부 정보는 기본 제공 형식의 크기를 참조하세요.

int 또는 크기 한정자를 지정할 때 signedunsigned키워드(keyword) 생략할 수 있습니다. 한정자와 int 형식(있는 경우)이 순서대로 나타날 수 있습니다. 예를 들어 short unsignedunsigned int short 동일한 형식을 참조합니다.

정수 형식 동의어

다음 형식 그룹은 컴파일러에서 동의어로 간주됩니다.

  • short, short int, signed short, signed short int

  • unsigned short, unsigned short int

  • int, signed, signed int

  • unsigned, unsigned int

  • long, long int, signed long, signed long int

  • unsigned long, unsigned long int

  • long long, long long int, signed long long, signed long long int

  • unsigned long long, unsigned long long int

Microsoft 특정 정수 형식에는 특정 너비__int8, __int16__int32__int64 형식이 포함됩니다. 이러한 형식은 signedunsigned 한정자를 사용할 수 있습니다. __int8 데이터 형식은 char 형식과 동의어이고, __int16short와 동의어이고, __int32int와 동의어이고, __int64long long과 동의어입니다.

기본 제공 형식의 크기

대부분의 기본 제공 형식에는 구현 정의 크기가 있습니다. 다음 표에서는 Microsoft C++의 기본 제공 형식에 필요한 스토리지 양을 나열합니다. 특히 long 64비트 운영 체제에서도 4바이트입니다.

Type 크기
bool, char, char8_t, unsigned char, signed char, __int8 1바이트
char16_t, __int16, short, unsigned short, wchar_t, __wchar_t 2바이트
char32_t, float, __int32, int, unsigned int, long, unsigned long 4바이트
double, __int64, long double, long long, unsigned long long 8바이트

각 형식의 값 범위에 대한 요약은 데이터 형식 범위를 참조하세요.

형식 변환에 대한 자세한 내용은 표준 변환을 참조 하세요.

참고 항목

데이터 형식 범위