Re: integer groesser 2^31 in C
Peter Bartosch wrote:
> Hi!
>
>
>> 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.
>
> AFAIK ist int immer Prozessor-Register breite -> 32Bit
> ...
> Peter
>
Das stimmt nicht. Ich habe einen Compiler auf einer 32 Bit Maschine mit 16
Bit int. Was alle kukünftiger Compiler für 64 (später 128) Bit Prozessoren
machen werden, ist auch noch nicht raus, weil da vielleicht sinnvoll wäre,
int auf 32 Bit festzuschreiben -- aus dem Sprachenstandard geht das
jedenfalls nicht hervor.
Wichtiger aber ist, daß das Problem von Achim woanders liegt. Die Frage
ist, ob es einen 64 Bit Integer Typ gibt. Den gibt es teilweise oder er
wird bei Bedarf halt emuliert mit einer Reihe Funktionen oder einer Klasse
-- wie es bei den komplexen Zahlen auch notwendig ist. Bei "COM", das es
zurecht auch unter Linux gibt, ist das Standard, um die zeitliche Auflösung
ausreichend groß zu haben.
Grüße, Gerhard
Reply to: