Computer processoren zijn toegenomen in complexiteit en capaciteit sinds hun uitvinding , en computerprogrammeurs moesten hun development tools te ontwerpen rond deze veranderingen . Als het geheugen grootte toeneemt , zoals in de overgang van 32 - bits naar 64 - bits processors , moeten oude compilers en broncode worden bijgewerkt om te profiteren van alle mogelijkheden van een processor . Een deel van dit voortvloeit uit de toegenomen beschikbare ruimte voor precisie variabelen of getallen, zoals gehele getallen . De GNU Compiler Collection , of GCC , is geen uitzondering . Hoewel programmeurs kunnen tweaken GCC om te werken tussen 32 - bit en 64 - bit systemen , de processor uiteindelijk bepaalt wat data formaten werken het best in de broncode . Integers en Memory Bij het schrijven van computercode , zal je onvermijdelijk een van de noodzakelijke artefacten van de programmering : variabelen . Een van de belangrijkste variabelen in bijna elke programmeertaal het gehele getal . Het integer - geheel decimaal getal - staat voor een fundamentele numerieke eenheid in decimale vorm . Echter , omdat computers niet numerieke waarden intern opgeslagen als decimalen maar als binaire getallen , integer variabelen wonen in het geheugen plaatsen als strings van binaire cijfers . Deze binaire strings zijn onderworpen aan de beperkingen van het geheugen van het systeem en voor het aantal binaire cijfers een geheugenlocatie kan houden . GCC en de Compilation Process Bij het samenstellen een programma voor een Unix -of Linux-systeem , zult u waarschijnlijk gebruik maken van de GNU compiler , GCC . De GCC compiler draait broncode en compileert in assembleertaal voor de hostprocessor van het computersysteem . Afhankelijk van de processor en de uitvoering van GCC beschikbaar is, kan de assembly code er anders tussen dergelijke machines . Een deel van de compilatie proces , echter , is het beheren van data types in de broncode binnen de structuur van de processor architectuur 32 - . En 64-bits processors < br > De progressie van de processor register maten heeft gevolgd een bepaald pad in verband met binaire numerieke weergave . Een register in een processor is een geheugen locatie binnen de processor . Een computer wordt beperkt hoeveel geheugen kan pakken en de grootte van de data items kan opslaan . Een 32 - bits processor heeft 32 - bit registers , wat betekent dat het kan opslaan items maximaal 2 ^ 32 bits lang . In decimale termen , kan een 32-bits register een unsigned niet-negatief getal zo groot te slaan als 4294967295 . Registers met 64 bits breiden dit door een verdubbeling van de hoeveelheid binaire cijfers beschikbaar voor getallen . GCC en Integer Grootte Gewoonlijk worden compilers beperkt door de processoren waarop zij stellen hun programma's . Een versie van GCC compileren programma's op een 32 - bit processor misschien niet per se een programma compileren klaar voor 64 - bit gebruik . Hoewel een compiler zoals GCC wordt beperkt door de processor , is de combinatie van processor en compiler die de grootte van een integer in een bepaald programma bepaalt . Standaard in C en C + + programmeren in een GCC compiler , een lange integer op een 32 - bits systeem is 32 bits , terwijl een lange integer op een 64 - bits systeem is 64 bits . < br >
|