나는 Google Go tutorial을 읽고 상수 섹션에서 이것을보고하고있다 :0LL 또는 0x0UL은 무엇을 의미합니까?
내가 Google 검색을하려고 노력 0LL 또는 0x0UL
같은 어떤 상수가 없습니다 만 나오면 그 모든 인스턴스 곳입니다 사람들은이 상수를 사용하고 있지만 의미가 무엇인지에 대해서는 설명하지 않습니다. 0x는 16 진수 리터럴을 시작해야하지만 16 진수로 가능한 문자는 아닙니다.
나는 Google Go tutorial을 읽고 상수 섹션에서 이것을보고하고있다 :0LL 또는 0x0UL은 무엇을 의미합니까?
내가 Google 검색을하려고 노력 0LL 또는 0x0UL
같은 어떤 상수가 없습니다 만 나오면 그 모든 인스턴스 곳입니다 사람들은이 상수를 사용하고 있지만 의미가 무엇인지에 대해서는 설명하지 않습니다. 0x는 16 진수 리터럴을 시작해야하지만 16 진수로 가능한 문자는 아닙니다.
이들은 C 및 C++의 상수입니다. 접미사 LL
은 상수가 long long
이고, UL
은 unsigned long
을 의미합니다. 일반적
L
또는
l
는
long
각
U
또는
u
가
unsigned
나타냄. 그래서 예.
1uLL
은 유형이 unsigned long long
인 상수 1을 의미합니다.
1.0f // of type 'float'
1.0 // of type 'double'
1.0L // of type 'long double'
및 문자열과 문자,하지만 그들은 접두사 :
이것은 또한 부동 소수점 숫자에 적용
'A' // of type 'char'
L'A' // of type 'wchar_t'
u'A' // of type 'char16_t' (C++0x only)
U'A' // of type 'char32_t' (C++0x only)
정수 상수 C와 C++에서
자신을 사용하여 평가 정수 오버플로로 인해 버그가 발생할 수있는 원본 유형 :
long long nanosec_wrong = 1000000000 * 600;
//^you'll get '-1295421440' since the constants are of type 'int'
// which is usually only 32-bit long, not big enough to hold the result.
long long nanosec_correct = 1000000000LL * 600
//^you'll correctly get '600000000000' with this
int secs = 600;
long long nanosec_2 = 1000000000LL * secs;
//^use the '1000000000LL' to ensure the multiplication is done as 'long long's.
구글 이동에
모든 정수는 (어떤 절단이 발생하지) 큰 정수로
var nanosec_correct int64 = 1000000000 * 600
을 평가하고 더 "usual arithmetic promotion"
var b int32 = 600
var a int64 = 1000000000 * b
//^cannot use 1000000000 * b (type int32) as type int64 in assignment
그래서 접미사가 필요하지 않습니다이된다. unsigned long
및 0x0
16 진수가 0
위한로서 long long
및 UL
하나로서 지정
0LL
은 0입니다.
0x0UL
은 16 진수 표기법을 사용하여 부호없는 긴 0입니다. 0x0UL
== 0UL
.
LL
리터럴을 나타낸다. 따라서 0LL
과 0x0UL
은 같은 수이지만 다른 데이터 유형입니다. 전자는 long long
이고 후자는 unsigned long
입니다.
는이 지정자의 많은이 있습니다
가1F // float
1L // long
1ull // unsigned long long
1.0 // double
+ C와 같은 언어에서, 그 접미사는 당신에게 정확한 유형을 말한다. 그래서 예를 들면.9는 int
변수이지만, 0LL
이있는 long long
가 여러 가지 기본 숫자 유형은, 그리고 문자를 구별 :
0 // normal number is interpreted as int
0L // ending with 'L' makes it a long
0LL // ending with 'LL' makes it long long
0UL // unsigned long
0.0 // decimal point makes it a double
0.0f // 'f' makes it a float
가 ... 검색을 시도 "나는 Google 검색을 시도" 용어 정수 상수 C++ LL'. :) –
나는 항상 '리터럴'과 상수를 상수로 선언 된 변수로 생각했습니다. –
충분하지만,'정수 리터럴 C++ LL'의 결과가 비슷하다고 생각합니다. :) –