[linux] Re: linux op laptop
Johan Wevers
johanw op vulcan.xs4all.nl
Di Jun 6 20:58:27 CEST 2006
Martijn van Oosterhout wrote:
>Nee, sizeof(int) = 4 en sizeof(long) = 8 op een 64-bit systeem. In C
>heb je maar een paar types voor getallen:
>
>char = 1 byte
>short = 2 bytes
>int = 4 bytes
>long = 4 bytes op 32-bit of 8 bytes op 64-bit
Onder gcc blijkbaar.
>Als je int 8-bytes zou maken zou er helemaal niks over blijven dat
>4-bytes is.
Is dat erg op een 64 bits systeem? Wat wil je daar met een 4-byte veld?
Compatibiliteit met 32 bits data of zo?
>Natuurlijk, maar de CPU en compiler moeten wel op dezelvde pagina zijn
>want je kan niet (makkelijk) zien van een stuk code of het 32 or 64 bit
>code is.
64 en 32 bit code door elkaar draaien is in de huidigfe praktijk dan ook
niet voor niks vragen om een crashend systeem.
>> Hmmm. Ik wil onder win32 progs nogal eens een pointer in een int veld
>> opslaan (voor de Borland kenners: in het Tag veld van VCL componenten).
>> Mag dat straks niet meer?
>Definieer die veld als long of void* en je probleem is opgelost.
De library definieert dat veld als int. Al denk ik dat een 64 bits versie
van de VCL daar wel een long van gaat maken, anders wordt er heel veel
bestaande code gebroken (en i.t.t. de libc beheerders kan dat een
commercieel bedrijf als Borland wel iets schelen).
>int <-> void* mag allang niet meer...
In theorie niet, in de praktijk werkt het op elk gangbaar 32 bit systeem.
Als ik iets voor een of andere embedded cpu maak waar dat niet geld hoor
ik te weten dat dat daar niet gaat.
--
ir. J.C.A. Wevers // Physics and science fiction site:
johanw op vulcan.xs4all.nl // http://www.xs4all.nl/~johanw/index.html
PGP/GPG public keys at http://www.xs4all.nl/~johanw/pgpkeys.html
More information about the Linux
mailing list