2013-07-22 29 views
7
for (x = 0; x < 1ULL<<(2*length); ++x){ 

powyższa linia to kod programu c, który został pobrany. Ma część "1ULL". Najpierw pomyślałem, że to pomyłka. ale kod kompiluje się i działa dobrze. Czy ktoś może mi wyjaśnić, co to znaczy.Co to jest "1ULL" w języku programowania

dziękuję ....

+0

Bez podpisu Długi długi sufiks "ULL" –

+2

https://www.google.com/search?q=c+ull+ffix+number wylicza prawie 5 milionów wyników, które z nich nie były zadowalające? –

+0

Kto to robi? –

Odpowiedz

3

te litery modyfikować dosłowne 1 i uczynić go typu unsigned long long.

Jest to opisane w C99 (ISO/IEC 9899) §6.4.4.1 całkowite stałe:

integer-suffix: 
unsigned-suffix long-suffixopt 
unsigned-suffix long-long-suffix 
long-suffix unsigned-suffixopt 
long-long-suffix unsigned-suffixopt 
unsigned-suffix: one of 
u U 
long-suffix: one of 
l L 
long-long-suffix: one of 
ll LL 
+1

Już głosuję na was wszystkich, ale myślę, że odpowiedzi są niekompletne, dopóki nie powiesz, jakie to możliwe. –

+1

na przykład 'sizeof (1)! = Sizeof (1ULL)'. –

9

sufiksu ULL liczbę całkowitą oznacza specyfikacja typu. Oznacza to

unsigned long long 

Można również przeczytać this i this one więcej szczegółów.

3

Jest to sposób sygnalizowania kompilatorowi, że wartość należy uznać za unsigned long long.