processeurs informatiques ont gagné en complexité et de la capacité depuis leur invention , et les programmeurs informatiques ont dû concevoir leurs outils de développement autour de ces changements. Avec l'augmentation de la taille de la mémoire , comme dans le passage de 32 bits pour les processeurs 64 bits , vieux compilateurs et le code source doit être mis à jour pour profiter du plein potentiel d'un processeur. Une partie de cela résulte de l' augmentation de l'espace disponible pour les variables ou les numéros précision, tels que les entiers . Collection de compilateurs GNU , ou GCC , ne fait pas exception . Bien que les programmeurs peuvent modifier GCC pour travailler entre les systèmes 32 bits et 64 bits , le processeur détermine finalement que la taille des données qui fonctionnent le mieux dans le code source . Entiers et mémoire
Lors de l'écriture du code informatique , vous serez inévitablement utiliser l'un des artefacts nécessaires de leur programmation : variables . Une des principales variables disponibles dans la plupart de chaque langage de programmation est l'entier . L'entier - ensemble un nombre décimal - représente une unité numérique de base sous forme décimale . Cependant, puisque les ordinateurs ne pas stocker des valeurs numériques en interne comme des nombres décimaux , mais comme des nombres binaires , des variables entières vivent dans des lieux de mémoire comme des chaînes de chiffres binaires . Ces chaînes binaires sont soumis aux contraintes de la mémoire du système et le nombre de chiffres binaires d'un emplacement mémoire peut contenir.
CCG et l' Compilation Process
Lors de la compilation un programme pour un système Unix ou Linux, vous devrez probablement utiliser le compilateur GNU , GCC . Le compilateur GCC prend code source et compile en langage d'assemblage adapté pour le processeur hôte du système informatique. Selon le processeur et la mise en œuvre de la GCC disponible , le code assembleur peut sembler différent entre machines similaires. Une partie du processus de compilation, cependant, implique la gestion des types de données dans le code source dans la structure de l'architecture du processeur
32 - . Et processeurs 64 bits
< br >
La progression du processeur tailles registre a suivi un chemin particulier ceux liés à la représentation numérique binaire. Un registre dans un processeur est un emplacement de mémoire unique à l'intérieur du processeur . Un ordinateur est limitée à la quantité de mémoire qu'il peut traiter et de la taille des éléments de données qu'il peut stocker . Un processeur 32 bits dispose de registres 32 bits , ce qui signifie qu'il peut stocker des objets jusqu'à 2 ^ 32 bits. En termes décimaux, un registre de 32 bits peut stocker un nombre non négatif unsigned aussi grand que 4,294,967,295 . Registres avec 64 bits développer cela en doublant la quantité de chiffres binaires disponibles pour représenter des nombres .
GCC et la taille Entier
Typiquement , les compilateurs sont limités par les processeurs sur lesquels ils compilent leurs programmes. Une version de compilation des programmes du CCG sur un processeur 32 bits ne serait pas nécessairement compiler un programme prêt à l'emploi 64-bit. Cependant, même si un compilateur comme gcc est limité par son processeur , c'est la combinaison de processeur et du compilateur qui détermine la taille d'un entier dans un programme particulier . Par défaut, dans C et C + + dans un compilateur GCC , un entier long sur un système 32 bits est de 32 bits , alors un entier long sur un système 64 bits est de 64 bits.