Computer -Prozessoren haben in Komplexität und Kapazität seit ihrer Erfindung erhöht und Programmierer mussten ihre Entwicklungs-Tools rund um diese Änderungen zu entwerfen. Als Speicher- Größe zunimmt , wie in der Bewegung von 32- Bit auf 64 -Bit-Prozessoren , müssen alte Compiler und Quellcode aktualisiert , um die Vorteile eines Prozessors , das volle Potenzial zu nehmen. Ein Teil dieser Ergebnisse aus dem erhöhten Platz für Präzision Variablen oder Zahlen , wie ganze Zahlen . Die GNU Compiler Collection , oder GCC , ist keine Ausnahme. Obwohl Programmierer GCC zwicken kann zwischen 32 -Bit und 64 -Bit-Systemen arbeiten , der Prozessor letztlich aussagt, welche Daten Größen am besten funktionieren in Quellcode. Integer und Speicher
Beim Schreiben Computer-Code , werden Sie unweigerlich eine der notwendigen Artefakte der Programmierung: Variablen . Eines der wichtigsten Variablen, die in fast jeder Programmiersprache ist die ganze Zahl ist. Die integer - eine ganze Dezimalzahl - stellt eine grundlegende numerische Einheit in dezimaler Form . Allerdings glaube da Computer nicht speichern numerische Werte intern als Dezimalzahlen , sondern als binäre Zahlen , Integer-Variablen in Speicherplätzen befinden als Zeichenfolgen von binären Ziffern. Diese binäre Strings unterliegen den Zwängen der Speicher des Systems und der Anzahl der binären Ziffern ein Speicher halten . Kann
GCC und die Kompilierung
Beim Kompilieren ein Programm für ein Unix -oder Linux- System, werden Sie wahrscheinlich mit dem GNU -Compiler GCC . Die GCC -Compiler nimmt Quellcode und kompiliert es in Assembler für den Host-Prozessor des Computersystems . Je nach Prozessor und die Umsetzung des GCC Verfügung, kann der Assembler-Code anders aussehen zwischen ähnlichen Maschinen. Ein Teil der Kompilierung , jedoch beinhaltet die Verwaltung von Daten -Typen im Quellcode innerhalb der Struktur der Prozessorarchitektur
32 - . -Und 64- Bit-Prozessor-
< br >
Das Fortschreiten der Prozessor -Register Größen hat einen bestimmten Pfad im Zusammenhang mit binären numerischen Darstellung. Ein Register in einem Prozessor ist ein einzelner Speicherplatz innerhalb des Prozessors . Ein Computer ist , wie viel Speicher adressieren kann beschränkt und die Größe der Datenelemente speichern kann . Ein 32- Bit-Prozessor verfügt über 32 -Bit-Register , das heißt es können Elemente bis zu 2 ^ 32 Bits lang . In Dezimalstelle ausgedrückt, kann ein 32 -Bit-Register eine unsignierte nicht negative Zahl so groß wie 4,294,967,295 speichern. Register mit 64 Bit erweitern dies durch eine Verdoppelung der Menge von binären Ziffern zur Verfügung Zahlen darzustellen.
GCC und Integer Größe
Typischerweise werden Compiler durch die Prozessoren beschränkt , auf denen sie erstellen ihre Programme . Eine Version von GCC kompiliert Programme auf einem 32 -Bit-Prozessor vielleicht nicht unbedingt ein Programm kompilieren bereit für 64-Bit- Anwendung . Obwohl ein Compiler wie GCC durch seinen Prozessor beschränkt ist, ist es die Kombination aus Prozessor und Compiler, der die Größe einer ganzen Zahl in einem bestimmten Programm bestimmt . Standardmäßig in C und C + + -Programmierung in einem GCC -Compiler ist ein long integer auf einem 32 -Bit-System 32 Bit , während eine lange ganze Zahl auf einem 64 -Bit-System ist 64 Bit.