기본 제공 형식(C++)
기본 제공 형식(기본 형식이라고도 함)은 C++ 언어 표준에 의해 지정되며 컴파일러에 기본 제공됩니다. 기본 제공 형식은 헤더 파일에 정의되지 않습니다. 기본 제공 형식은 세 가지 주요 범주 인 정수, 부동 소수점 및 void로 구분됩니다. 정수 형식은 정수를 나타냅니다. 부동 소수점 형식은 소수 부분이 있을 수 있는 값을 지정할 수 있습니다. 대부분의 기본 제공 형식은 컴파일러에서 고유 형식으로 처리됩니다. 그러나 일부 형식은 동의어이거나 컴파일러에서 동등한 형식으로 처리됩니다.
Void 형식
이 형식은 void
빈 값 집합을 설명합니다. 형식 void
의 변수를 지정할 수 없습니다. 이 void
형식은 주로 값을 반환하지 않는 함수를 선언하거나 형식화되지 않거나 임의로 형식화된 데이터에 대한 제네릭 포인터를 선언하는 데 사용됩니다. 모든 식은 void
형식으로 명시적으로 변환되거나 캐스팅될 수 있습니다. 그러나 이러한 식은 사용이 다음으로 제한됩니다.
식 문. (자세한 내용은 를 참조하세요 .식.)
쉼표 연산자의 왼쪽 피연산자. (자세한 내용은 를 참조하세요 .쉼표 연산자입니다.)
조건 연산자의 두 번째 또는 세 번째 피연산자(
? :
)입니다. (자세한 내용은 를 참조하세요 .조건부 연산자를 사용하는 식입니다.)
std::nullptr_t
키워드 nullptr
는 모든 원시 포인터 형식으로 변환할 수 있는 형식 std::nullptr_t
의 null 포인터 상수입니다. 자세한 내용은 nullptr
를 참조하세요.
부울 형식
형식에는 bool
값 true
과 false
. 형식의 bool
크기는 구현에 따라 다릅니다. Microsoft 관련 구현 세부 정보는 기본 제공 형식의 크기를 참조하세요.
문자 형식
형식은 char
기본 실행 문자 집합의 멤버를 효율적으로 인코딩하는 문자 표현 형식입니다. C++ 컴파일러는 char
, signed char
및 unsigned char
형식의 변수를 서로 다른 형식으로 처리합니다.
Microsoft 관련: 컴파일 옵션을 사용하지 않는 한 /J
형식 char
의 변수는 기본적으로 형식 signed char
에서 온 것처럼 승격 int
됩니다. 이 경우 형식 unsigned char
으로 처리되고 서명 확장 없이 승격 int
됩니다.
형식 wchar_t
의 변수는 와이드 문자 또는 멀티바이트 문자 형식입니다. L
문자 또는 문자열 리터럴 앞에 접두사를 사용하여 와이드 문자 형식을 지정합니다.
Microsoft 전용: 기본적으로 wchar_t
네이티브 형식이지만 , 에 대한 unsigned short
typedef를 만드는 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 double
과 double
동일합니다. 그러나 long double
double
컴파일러에서 고유 형식으로 처리됩니다. Microsoft C++ 컴파일러는 4 바이트 및 8 바이트 IEEE-754 부동 소수점 표현을 사용합니다. 자세한 내용은 IEEE 부동 소수점 표현을 참조하세요.
정수 형식
int
이 형식은 기본 기본 정수 형식입니다. 구현별 범위에 대한 모든 정수를 나타낼 수 있습니다.
부인 정수 표현은 양수 값과 음수 값을 모두 보유할 수 있는 정수 표현입니다. 기본적으로 사용되거나 한정자 키워드가 signed
있는 경우에 사용됩니다. 한정자 키워드는 unsigned
음수가 아닌 값만 보유할 수 있는 부호 없는 표현을 지정합니다.
크기 한정자는 사용된 정수 표현의 너비를 비트 단위로 지정합니다. 언어는 , long
및 long long
한정자를 지원합니다short
. 형식은 short
너비가 16비트 이상이어야 합니다. 형식은 long
너비가 32비트 이상이어야 합니다. 형식은 long long
너비가 64비트 이상이어야 합니다. 표준은 정수 계열 형식 간의 크기 관계를 지정합니다.
1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
구현은 각 형식에 대한 최소 크기 요구 사항과 크기 관계를 모두 유지해야 합니다. 그러나 실제 크기는 구현마다 다를 수 있습니다. Microsoft 관련 구현 세부 정보는 기본 제공 형식의 크기를 참조하세요.
int
또는 크기 한정자를 지정할 때 signed
unsigned
키워드를 생략할 수 있습니다. 한정자와 int
형식(있는 경우)이 순서대로 나타날 수 있습니다. 예를 들어 short unsigned
unsigned 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
형식이 포함됩니다. 이러한 형식은 signed
및 unsigned
한정자를 사용할 수 있습니다. __int8
데이터 형식은 char
형식과 동의어이고, __int16
은 short
와 동의어이고, __int32
는 int
와 동의어이고, __int64
는 long long
과 동의어입니다.
기본 제공 형식의 크기
대부분의 기본 제공 형식에는 구현 정의 크기가 있습니다. 다음 표에서는 Microsoft C++의 기본 제공 형식에 필요한 스토리지 양을 나열합니다. 특히 long
64비트 운영 체제에서도 4바이트입니다.
유형 | 크기 |
---|---|
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바이트 |
각 형식의 값 범위에 대한 요약은 데이터 형식 범위를 참조하세요.
형식 변환에 대한 자세한 내용은 표준 변환을 참조 하세요.