Dator -processorer har ökat i komplexitet och kapacitet eftersom deras uppfinning , och dataprogrammerare har haft att utforma sina utvecklingsverktyg kring dessa förändringar . Som ökar minnesstorlek, såsom i övergången från 32 - bitars till 64 - bitars processorer , måste gamla kompilatorer och källkod uppdateras för att ta fördel av en processor fulla potential . En del av detta beror på den ökade utrymmet för precision variabler eller siffror , t.ex. heltal . GNU Compiler Collection , eller GCC , är inget undantag . Även programmerare kan tweak GCC för att arbeta mellan 32 - bitars och 64 - bitars system , dikterar processorn slutändan vad datastorlekar fungerar bäst i källkoden . Heltal och Memory
När du skriver datakod , kommer du att använda oundvikligen en av de nödvändiga artefakter i programmering : variabler . En av de primära variablerna finns i de flesta varje programmeringsspråk är heltal . Den heltal - ett helt decimaltal - utgör en grundläggande numerisk enhet i decimalform . Men eftersom datorer inte lagra numeriska värden internt som decimaler , men som binära tal , heltalsvariabler bor i minnesplatser som strängar av binära siffror . Dessa binära strängar är föremål för begränsningarna i systemets minne och antalet binära siffror en minnesplats kan hålla . Addera GCC och kompilationsprocessen
Vid sammanställningen ett program för en Unix-eller Linux -system , kommer du antagligen använda GNU -kompilatorn , GCC . GCC kompilator tar källkod och sammanställer det i assembler lämplig för värdprocessor av datasystemet . Beroende på processorn och genomförandet av GCC tillgängliga kan assemblerkod ser annorlunda mellan liknande maskiner . En del av sammanställningen processen innebär dock hanteringen av datatyper i källkoden i strukturen av processorns arkitektur
32 - . Och 64 - bitars processorer
progression av processor register storlekar har följt en viss bana relaterad till binär numerisk representation . Ett register i en processor är en enda minnesplats inuti processorn. En dator är begränsad i hur mycket minne det kan adressera och storleken för dataposterna det kan lagra . En 32 - bitars processor har 32 - bitars register , vilket betyder att den kan lagra objekt upp till 2 ^ 32 bitar lång . I decimala termer , kan ett 32 - bitars register lagra en osignerad icke - negativt tal så stor som 4294967295 . Register med 64 bitar utöka detta genom att fördubbla mängden av binära siffror som finns att representera siffror . Addera GCC och Integer Storlek
Typiskt kompilatorer begränsas av de processorer som de sammanställer sina program . En version av GCC bygga program på en 32 - bitars processor kan inte nödvändigtvis kompilera ett program redo för 64 - bitars användning . Emellertid , även om en kompilator såsom GCC begränsas av dess processor är det kombinationen av processorn och kompilator som bestämmer storleken på ett heltal i ett visst program. Som standard i C och C + + programmering i ett GCC kompilator , är en lång heltal på ett 32 - bitars system för 32 bitar , medan en lång heltal på ett 64 - bitars system är 64 bitar .