Es gibt Compiler, die einen Typ int64 eingebaut haben (VC6 zum Beispiel) und andere, die 64 Bit Zahlen in einer struct LARGE_INTEGER in einer *.h Datei anbieten (z.B. BCB ab v3). Was die verschiedenen GNU Versionen haben weiß ich noch nicht (#if defined( [int64|_int64|o.ä.] ) ... // versuchen). Es ist jedoch leicht, eine Klasse für Operationen mit 64 Bit Zahlen selbst zu bauen oder eine Sammlung Funktionen in C -- nur die Ausgabe per printf ist eine langweilige Fleißarbeit. Auch sind arrays aus 2^31 Bit großen Einzelspeicherbereichen möglich.
Gruß, gw PS: Der erste Versuch, diese Antwort zu senden, hatte keinen Erfolg. Wenn jemand meint, das Thema wäre out of topics, hätte die Anfrage nicht veröffentlicht werden dürfen. Achim Fritz wrote: > Hi, > > fuer ein Finite-Element-Programm in C, muesste ich unbedingt mehr als 2Gb > Speicher allokieren. Der Rechner hat 2Gb Speicher und 2Gb Swap. > Ich habe erst gedacht, es liegt am Kernel (CONFIG_HIGHMEM ist gesetzt), > habe jetzt aber festgestellt, dass es nicht moeglich ist in C eine Integer > zu deklarieren, die groesser als 2^31 ist. > > [EMAIL PROTECTED]:~/ugspeicher/test-proc> cat testint.c > #include <stdlib.h> > > int main(void){ > long long int a=2200000000; > int b=2200000000; > int c=2000000000; > printf("a=%d\n",a); > printf("b=%d\n",b); > printf("c=%d\n",c); > exit(0); > } > [EMAIL PROTECTED]:~/ugspeicher/test-proc> gcc testint.c > testint.c: In function `main': > testint.c:4: warning: decimal constant is so large that it is unsigned > testint.c:5: warning: decimal constant is so large that it is unsigned > [EMAIL PROTECTED]:~/ugspeicher/test-proc> ./a.out > a=-2094967296 > b=-2094967296 > c=2000000000 > > Hab schon mehrere Compiler ausprobiert (unter anderem auch Borland auf > Windows) und in den manpage von gcc nach optionen gesucht. > (2.4.21 hab ich auch schon getestet) > > Der Kernel hat auch keine Probleme mit grossen Zahlen: > [EMAIL PROTECTED]:~/ugspeicher/test-proc> echo "2^31"|bc > 2147483648 > [EMAIL PROTECTED]:~/ugspeicher/test-proc> echo "2^32"|bc > 4294967296 > [EMAIL PROTECTED]:~/ugspeicher/test-proc> echo "2^100"|bc > 1267650600228229401496703205376 > > Und noch was: > [EMAIL PROTECTED]:~/ugspeicher/test-proc> ulimit -a > core file size (blocks, -c) 0 > data seg size (kbytes, -d) unlimited > file size (blocks, -f) unlimited > max locked memory (kbytes, -l) unlimited > max memory size (kbytes, -m) unlimited > open files (-n) 1024 > pipe size (512 bytes, -p) 8 > stack size (kbytes, -s) 8192 > cpu time (seconds, -t) unlimited > max user processes (-u) 7168 > virtual memory (kbytes, -v) unlimited > > Hat jemand ne Ahnung, oder ne Idee? > > Gruss Achim > > -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)