POSITION ist ein Datentyp, der häufig in der MFC-Vorlagenklassenbibliothek verwendet wird. Aus seiner Definition können wir ersehen, dass es sich tatsächlich um einen Zeiger handelt.
//abstrakte Iterationsposition
struct POSITION { };
typedef POSITION* POSITION;
Der von MFC angegebene Kommentar ist: eine abstrakte Iterationsposition, was bedeutet, dass dies nicht der Fall ist Spezifische Datentypen, um den Anforderungen verschiedener Vorlagenparameter gerecht zu werden.
In CList wird POSITION häufig als Referenzparameter oder als Rückgabewert verwendet. Im Folgenden geben wir zwei einfache Beispiele, um Ihnen das Verständnis dieses Datentyps zu erleichtern. Vorher möchte ich jedoch ausführlich sein, da viele Menschen der leeren Struktur von POSITION skeptisch gegenüberstehen Hindernis für ihr Verständnis. Da es sich um eine leere Struktur handelt, wie kann sie zum Definieren eines Zeigers verwendet werden?
Tatsächlich betrachtet der C++-Compiler eine leere Struktur nicht als vollständig leer. Der Compiler wird ihr 1 Byte Speicher zuweisen. Um es ganz klar auszudrücken: Die POSITION-Struktur entspricht einem vorzeichenlosen Zeichentyp, also POSITION entspricht unsigned char, dem BYTE-Typ in Windows, daher hat POSITION eine äquivalente Form, nämlich BYTE*.
Wir werden uns auf zwei typische Mitgliedsfunktionen in CList konzentrieren. Natürlich sollte jeder wissen, dass CList eine verknüpfte Listendatenstruktur ist. Schauen wir uns diese beiden Funktionen an:
1. POSITION GetHeadPosition() const; Offensichtlich wird diese Funktion verwendet, um den Kopf der verknüpften Liste abzurufen, und ihr Rückgabewert ist eine POSITION, die eigentlich ein Zeiger ist. Wen repräsentiert dieser Zeiger? Natürlich ist es der Zeiger auf den Kopf der verknüpften Liste, den Sie sich schon immer gewünscht haben. Dieser Zeiger stammt von new und Sie dürfen diesen Zeiger nicht ohne Genehmigung löschen.
2. TYPE& GetAt(POSITION position);
Diese Funktion sieht seltsam aus. Sein einziger Eingabeparameter ist ein Zeiger. Tatsächlich kann es sich um den Kopfknotenzeiger handeln, den Sie gerade mit GetHeadPosition erhalten haben. Die Bedeutung dieser Funktion besteht darin, dass Sie die Adresse eines Knotens angeben müssen und CList dann die gesamte Kette durchläuft, um Knotendaten zu finden und zurückzugeben, die dieser Adresse entsprechen.
So viel Unsinn, in einem Wort, alle Ergebnisse werden in einem Satz zusammengefasst, sprich:
POSITION, man kann es sich wie einen Studentenausweis vorstellen, damit kann man dort alle Klassenstudenten finden.
POSITION wird in MFC verwendet, um den
Index verschiedener Listen- oder Array-Objekte zu speichern, um die Identifizierung der Position von Elementen während des Durchlaufs zu erleichtern. Tatsächlich handelt es sich um einen 32-Bit-Wert, und sein Inhalt kann ein Zeiger oder der Index eines Arrays sein.
Das obige ist der detaillierte Inhalt vonErklärung zur Verwendung von POSITION. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!