Computer -processorer er steget i kompleksitet og kapacitet siden deres opfindelse , og edb-programmører har måttet designe deres udviklingsværktøjer omkring disse ændringer. Som hukommelse størrelse stiger , som i overgangen fra 32-bit til 64 - bit processorer , skal gamle compilere og kildekode blive opdateret til at drage fordel af en processor fulde potentiale. En del af dette skyldes den øgede plads til præcision variabler eller numre , såsom heltal. GNU Compiler Collection, eller GCC , er ingen undtagelse. Selvom programmører kan tweak GCC til at arbejde mellem 32 -bit og 64-bit systemer , processoren sidste ende dikterer, hvad data størrelser fungerer bedst i kildekoden. Heltal og hukommelse
Når du skriver computer kode, vil du uundgåeligt bruge en af de nødvendige artefakter af programmeringen : variabler. En af de primære variable er tilgængelige i de fleste hver programmeringssprog er heltal. Den integer - en hel decimaltal - repræsenterer en grundlæggende numerisk enhed som et decimaltal . Men da computere ikke opbevares numeriske værdier internt decimaler , men som binære tal , bor heltalsvariabler i lagerpladser som strenge af binære cifre . Disse binære strenge er underlagt de begrænsninger af systemets hukommelse, og til antallet af binære cifre en hukommelse kan indeholde.
GCC og Compilation Process
Når kompilering et program for en Unix -eller Linux- system, vil du sandsynligvis bruge GNU compiler, GCC. GCC compiler tager kildekode og samler det i assembler er egnet for værten processor af edb-systemet . Afhængig af processoren og gennemførelsen af GCC til rådighed, kan forsamlingen koden se anderledes mellem lignende maskiner . En del af fastlæggelsen processen, men involverer styring af datatyper i kildekoden inden for strukturen af processor arkitektur
32 - . Og 64-bit -processorer
< br >
progression af processor registerdata størrelser har fulgt en bestemt sti relateret til binær numerisk repræsentation. Et register i en processor er en enkelt hukommelsesplacering inde i processoren . En computer er begrænset i , hvor meget hukommelse det kan adressere og størrelsen af de dataposter det kan lagre . En 32 -bit processor har 32- bit registre , hvilket betyder at det kan gemme elementer op til 2 ^ 32 bit lang . I decimal form , kan en 32- bit register gemme en usigneret ikke- negativt tal så stort som 4294967295 . Registre med 64 bits udvide denne ved at fordoble mængden af binære cifre til rådighed til at repræsentere tal .
GCC og Integer Size
Typisk er compilere begrænset af processorer , som de skal sammensætte deres programmer. En version af GCC oversætte programmer på en 32 -bit processor ikke nødvendigvis kompilere et program klar til 64-bit brug. Selv en compiler som GCC er begrænset af dens processor , det er kombinationen af processor og compiler, der bestemmer størrelsen af et heltal i et bestemt program . Som standard i C og C + + programmering i en GCC compiler, en lang heltal på en 32 -bit system er 32 bits , mens en lang heltal på en 64 - bit system er 64 bits.
< br >