far Pointer
-
In einigen DOS-Programmen werden far-Pointer verwendet. Und mich würde mal interessieren, was das in der Praxis jetzt eigentlich ist. Ja, ich hab schon etwas gelesen über Segment und Offset etc. Aber ich würde gerne mal verständlich erklärt haben, was das für mich als Programmierer in der Praxis bedeutet. Wann müsste ich in DOS einen far Pointer verwenden, wann reicht ein normaler?
-
Hallo,
meine 16-Bit Entwicklungstätigkeiten habe ich schon vor einiger Zeit eingestellt. Ich versuche daher aus meiner Erinnerung zu antworten.
Grundsätzlich gibt es beim 16 Bit Modus 3 verschiedene Arten von Zeigern:
near: 16 Bit und können damit nur max. 64 kB Adressieren.
far: segment + offset entspricht wenn ich mich recht erinnere einem 20 Bit Zeiger und kann daher bis zu 1 MB adressieren. Der Speicherblock darf aber nicht größer als 64 kB sein.
huge: Wie far, aber der Speicherblock darf bis zu 1 MB groß sein.Je nach dem wie Du Deinen Code übersetzt hast, ist ein Zeiger ohne nähere Angaben einer dieser 3 Arten. Zu kannst aber beim Deklarieren eines Zeigers auch einen der anderen Arten angeben.
Genauere Infos findest Du aber bestimmt in der Doku zu Deinem Compiler.
mfg Martin