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

Re: integer groesser 2^31 in C



Hallo,

Am Montag, 30. Jun 2003, 16:14:47 +0200 schrieb Daniel Hofmann:
> 
> Achim Fritz <fritzam@mathematik.uni-stuttgart.de> writes:
> 
> > 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.
> 
> Bezüglich der Größe von Integertypen macht der C - Standard lediglich
> folgende Zusicherung:
> 
>          char <= short <= int <= long

Ich hab's gerade nochmal nachgeschlagen (im Stroustrup): außerdem
wird zugesichert, daß

    sizeof (short) >= 16 bit
    sizeof (long)  >= 32 bit

ist.

> 
> [...]
> 
> Ob Du nun aber so große Speicherbereiche allozieren kannst, und ob
> Dein Programm das wirklich tun muß, bezweifele ich eher.

Wenn Dein Programm 2GB Speicher haben will, ist es mit großer
Wahrscheinlichkeit falsch.

Gruß
Bertram

-- 
Bertram Scharpf
Stuttgart, Deutschland/Germany



Reply to: