[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: