long
과 long int
동일하다. 그래서 있습니다 long long
와 long long int
. 두 경우 모두 int
는 선택 사항입니다.
두 세트 사이의 차이와 같이, C ++, 각 표준 위임 최소 범위 및 그 long long
있어요 최소 폭만큼 long
.
표준의 제어 부분 (C ++ 11이지만 오랫동안 사용되어 왔음)은 3.9.1 Fundamental types
섹션 2입니다 (나중 섹션은 부호없는 정수 유형에 대해 유사한 규칙을 제공합니다).
부호있는 char, short int, int, long int 및 long long int의 5 가지 표준 부호있는 정수 유형이 있습니다. 이 목록에서 각 유형은 목록에서 이전 유형보다 최소한 많은 스토리지를 제공합니다.
또한 표 9에 표 9가 있는데 7.1.6.2 Simple type specifiers
, 이는 실제 유형에 대한 지정자의 "매핑"을 보여줍니다 ( int
이 옵션은 선택 사항 임). 섹션은 다음과 같습니다.
Specifier(s) Type
------------- -------------
long long int long long int
long long long long int
long int long int
long long int
지정자와 유형 사이의 차이점에 유의하십시오. 지정자는 컴파일러에게 유형이 무엇인지 알려주는 방법이지만 다른 지정자를 사용하여 같은 유형으로 끝날 수 있습니다.
따라서 long
자체적으로 질문이 제기 하는 유형 이나 수정자가 아니며 단순히 long int
유형 의 지정자입니다 . 타입 long long
의 지정자 인 Dittolong long int
C ++ 표준 자체는 적분 유형의 최소 범위를 지정하지는 않지만 C99 1.2 Normative references
를 적용 할 때 인용 합니다. 따라서 설정 한 최소 범위를 C99 5.2.4.2.1 Sizes of integer types <limits.h>
적용 할 수 있습니다.
의 관점에서 long double
, 그것은 실제로 정수가 아닌 부동 소수점 값입니다. 적분 유형과 마찬가지로 적어도 a만큼 정밀도를 가져야하고 double
해당 유형에 대해 값의 수퍼 세트를 제공해야합니다 ( 적어도 더 많은 값은 아니지만 해당 값을 의미 함 ).