Het is nu vaak zo dat:.oisyn schreef op 18 januari 2004 @ 05:25:
[...]
Ja maar stel je laat de int meegroeien, wat moet dan het 32-bits type worden? Dat kan niet long worden, want die moet minstens zo groot zijn als een int.
short int = 16 bits
int = 32 bits
long int = 32 bits
Maar dit is alleen maar een toevalligheid. Er staat nergens dat er perse een 16 bits type nodig is. Waarom het zo gegroeid is dat int en long int in de praktijk hetzelfde zijn weet ik ook niet. In mijn totale naiviteit zou ik zeggen dat je bij mee groeien zou doen:
short int = 32 bits
int = 64 bits
long int = 128 bits
De long int zou dan geen directe hardware support hebben op 64 bits systemen. De 'plain' int geeft door zijn 'plainness' dan aan dat het gaat om het gewone 'systeem' woord. De short is dan iets minder als het systeem woord en de long iets meer (dus potentieel langzamer). Voor het gevoel zou dit meer kloppen. (IMHO)
Als dit echt ongewenst is voor een basic type zou je kunnen zeggen:
short int = 16 bits
int = 32 bits
long int = 64 bits
Dan is je int inderdaad niet meegegroeid (in de praktijk), maar de long wel. In beiden gevallen ben je van die stomme praktijk situatie af dat long en int evengroot zijn. Dat slaat gewoon helemaal nergens op.
Maar waarom zijn die types dan niet ooit voor een bepaald aantal bits gespecificeerd, als dus nu blijkt dat dat 'meegroeien' helemaal niet gebeurt en men het blijkbaar altijd zo wil dat de short int 16 bit is en de 'plain' int 32 bit. Dan mogen ze van mij dat "short int <= int <= long int" verhaaltje vandaag nog uit de standaard schrappen, want dat heeft dan geen enkel practisch nut.En dit zorgt er dan weer voor dat je geen oude code kunt gebruiken, en een naadloze portability tussen 32 en 64 bits staat toch wel hoog op het vaandel.
Aha. Dus toch :-)
Offtopic: als je minder dan 2% edit, dan komt het editbericht er niet bij te staan
It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.