processadores de computador têm aumentado em complexidade e capacidade desde a sua invenção , e programadores de computador tiveram que projetar suas ferramentas de desenvolvimento em torno dessas mudanças . Com o aumento de tamanho de memória , como no movimento de 32 bits para processadores de 64 bits , os compiladores antigos e código-fonte deve ser atualizado para aproveitar todo o potencial da um processador . Parte desta resulta do aumento do espaço disponível para as variáveis de precisão ou números , como números inteiros. O GNU Compiler Collection , ou GCC, não é excepção. Embora os programadores podem ajustar GCC para trabalhar entre sistemas de 64 bits e de 32 bits , o processador de última instância, determina que o tamanho dos dados funcionam melhor no código fonte. Inteiros e Memória
Ao escrever código de computador, você inevitavelmente vai usar um dos artefatos necessários de programação : variáveis. Uma das principais variáveis disponíveis em quase todas as linguagens de programação é o inteiro . O inteiro - um número decimal inteiro - representa uma unidade básica numérica na forma decimal . No entanto, desde que os computadores não armazenar valores numéricos internamente como decimais mas como números binários, variáveis inteiras residem em locais de memória como cadeias de dígitos binários. Essas seqüências binárias estão sujeitos às limitações de memória do sistema e para o número de dígitos binários um local de memória pode conter.
GCC eo processo de compilação
Ao compilar um programa para um sistema Unix ou Linux, você provavelmente usará o compilador GNU , GCC . O compilador GCC tem código fonte e compila -lo em linguagem de montagem adequado para o processador host do sistema de computador. Dependendo do processador e da implementação de GCC disponível, o código de montagem pode parecer diferente entre máquinas semelhantes . Parte do processo de compilação, no entanto, envolve a gestão de tipos de dados no código fonte dentro da estrutura da arquitetura do processador
32 - . E Processadores de 64 bits
< br >
A progressão de tamanhos registrador do processador tem seguido um caminho específico relacionado a representação binária numérica. Um registro em um processador de um único local de memória dentro do processador . Um computador é limitada na quantidade de memória, ele pode tratar e o tamanho dos elementos de dados que pode armazenar . Um processador de 32-bit tem registros de 32 bits , o que significa que pode armazenar itens até 2 ^ 32 bits de comprimento . Em termos decimais , um registo de 32 bits pode armazenar um número não-negativo sem sinal tão grande como 4294967295 . Registros com 64 bits expandir esta dobrando a quantidade de dígitos binários disponíveis para representar números .
GCC e Integer Tamanho
Normalmente , os compiladores são restritas pelos processadores nos quais eles compilar seus programas. Uma versão do GCC compilar programas em um processador de 32 bits pode não necessariamente compilar um programa pronto para uso de 64 bits. No entanto , apesar de um compilador , tais como GCC é limitado pelo seu processador , que é a combinação do processador e compilador que determina o tamanho de um número inteiro de um determinado programa . Por padrão, em C e programação C + + em um compilador GCC, um inteiro longo em um sistema de 32 bits é de 32 bits , enquanto que um inteiro longo em um sistema de 64 bits é de 64 bits.