← Back to team overview

sslug-teknik team mailing list archive

Re: VFAT og store filer

 

Mads Bondo Dydensborg <madsdyd@xxxxxxxxxxxx> wrote in message
news:Pine.LNX.4.21.0005021531350.3299-100000@xxxxxxxxxxxx...
On Tue, 2 May 2000, Thomas wrote:

> Herfra hvor jeg sidder ser det altså temmeligt meget ud til at en unsigned
> long er 4 bytes == 32 bit på en 686, som jo burde være et OK eksemplar af
> den type maskiner vi snakker om.
>
> mmh..ser sådan ud :-)
>
> Er vi enig om, at en int er 32 bit ??????

På en i386, ja.

> dvs du siger at long = 32 bit = int ?????  Hvorfor fanden så bøvle med en
> long eller int :-)

Du har følgende garantier:

sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long)

korrekt..... :-)  (endelig en ting man kan være sikker på)



Det er det hele.

På en i386 (og HPUX 7xx og Sun ultrasparc, så vidt jeg kan se)

sizeof char 1
sizeof short 2
sizeof int 4
sizeof long 4
sizeof long long 8

På en alpha

sizeof char 1
sizeof short 2
sizeof int 4
sizeof long 8
sizeof long long 8

Hva helvede...Sidder du omgivet af alverden maskiner ?????

Så, derfor bøvler man med long.

Under C++ er sizeof(char) 1 fordi alle størrelser måles som multipla af
sizeof(char). Det er du, så vidt jeg ved, ikke engang garanteret under C,
hvor størrelser måles i bytes, altså, du kunne have at sizeof(char) = 2,
f.eks. Spooky.

Mener bestemt at C++ og C er kompatipel hvad angår datatype størrelse.
Desuden skal du hukse på at en C compiler til en powerPC opfatter datatyper
anderledes end en C compiler til en x86 CPU.
Derfor kan man heller ikke bare portere sit C/C++ program..
Ja..det er ikke engagn sikkert man kan tage source koden og kompilere den på
en anden CPU, da der så kan gå evt ged i nogle udregninger, da størrelsen er
anderledes på en anden type CPU. Især nær man shifter bit's kan det gå galt


Mads

--
Mads Bondo Dydensborg.                               madsdyd@xxxxxxxxxxxx
My shell can beat your shell. So there!





Follow ups

References