Erklären Sie den Unterschied zwischen nahen, fernen und riesigen Zeigern in c? [Duplikat]

8

Ich habe in GOOGLE nach dem Unterschied zwischen diesen drei Zeigern gesucht. Aber ich habe den Unterschied zwischen den beiden Zeigern herausgefunden.

Können Sie bitte detaillierte Erklärungen dazu geben?

    
Karai 04.01.2012, 12:47
quelle

2 Antworten

18

Die Unterschiede sind nur für 16 bit intel architectures relevant.

Soweit virtuelle Adressen betroffen sind, hat es zwei Komponenten - einen Selektor und einen Offset.

Der Selektor ist ein Index in eine Tabelle mit Basisadressen, und offset wird dieser Basisadresse hinzugefügt.

nahe -Zeiger haben keinen Selektor - sie haben implied selector . Sie können auf 64k aus dem virtuellen Adressraum zugreifen.

far Zeiger haben explicit selector . Wenn Sie jedoch mit Zeigerarithmetik arbeiten, wird selector isn't modified .

angezeigt

große Zeiger haben explicit selector . Wenn Sie die Zeigerarithmetik für sie ausführen, obwohl the selector can change .

Bitte beachten Sie diesen Link für weitere Informationen:

Ссылка

    
karthik 04.01.2012 12:49
quelle
4

Nah, fern und riesige Zeiger gehören nicht zum Standard C; Sie sind / waren eine Erweiterung, die von mehreren Anbietern eingeführt wurde, um mit segmentierten Speicherarchitekturen umzugehen. Karthiks Antwort gibt viel mehr Details.

    
John Bode 04.01.2012 12:50
quelle

Tags und Links