8 Byte ints auf nem 32 Bit Prozessor? Welche Möglichkeiten gibt es?
-
Ne, läuft nicht liegt das nicht am 32-Bit Betriebssystem?
Ich hab gcc 4.4.3
-
Das ist komisch:
#include <stdio.h> int main(void) { printf("%d\n", sizeof(unsigned long long)); return 0; }
Dies liefert 8, aber irgendwie meckert der Compiler trotzdem, wobie es ist nur eine Warnung kein wirklicher Fehler
.
Hat sich alles erledigt, danke, muss das nächste mal richtig lesen schätze ich
.
-
Nirvana134 schrieb:
Ne, läuft nicht liegt das nicht am 32-Bit Betriebssystem?
Ne, daran liegts nicht. Komisch, nutze gcc zwar eher selten aber long long sollte trotzdem kein Problem sein. Eigenartig ist auch, dass der long long zwar schluckt, aber dann eine Fehlermeldung für den Typ "long" ausgibt
-
Komisch. Funktioniert folgendes denn?
#include <stdio.h> #include <stdint.h> int main() { uint64_t i = 600851475143; printf("%llu", i); }
-
Ja, also es läuft (sprich er kompiliert und), aber die o.g. Warnung gibt er trotzdem aus.
-
Nirvana134 schrieb:
aber die o.g. Warnung gibt er trotzdem aus.
Und mit ULL?
-
Ja, auch mit unsigned long long gibt er die Warnung aus.
Bei
#include <stdio.h> #include <stdint.h> int main() { uint64_t i = 600851475143; printf("%llu", i); }
Gibt gcc die gleiche Warnung aus.
-
volkard meinte vermutlich:
uint64_t i = 600851475143ULL;
-
Achso, moment....
ja das mit ULL nimmt er. My bad, bin ziemlich unkonzentriert heute und hab ULL überlesen.
Danke
-
Portabel nach C99:
#include <inttypes.h> #include <stdio.h> #include <stdint.h> int main() { uint64_t i = UINT64_C(600851475143); printf("%" PRIu64 "\n", i); return 0; }