Pointer
-
hallo,
kann mir jemand erläutern was dieser Code zu bedeuten hat :
void *tx; drv_data->tx+=2;
was heißt ein Zeiger vom Typ void ( sehe ich zum ersten mal )
was bewirkt das Inkrementieren um 2 ??.vielen dank
-
myouness27 schrieb:
was heißt ein Zeiger vom Typ void ( sehe ich zum ersten mal )
Genau genommen "Zeiger auf unspezifizierte Daten" - der zeigt irgendwohin in den Speicher, ohne etwas über die Struktur der dort untergebrachten Daten zu wissen. (mit so einem Zeiger kannst du nicht viel machen, außer ihn herumzureichen oder in einen "echten" Zeiger zu casten)
was bewirkt das Inkrementieren um 2 ??.
Zeigerarithmetik - der Zeiger wird um zwei Elemente nach vorne geschoben (wieviel das in Byte ist, hängt von der Größe des Typs ab, auf den er zeigt).
(btw, ein "void*" kann nicht inkrementiert werden)
-
CStoll danke schön für die schnelle Antwort
-
das sind zwei verschiedene tx
void *tx; // ein tx drv_data->tx += 2; // ein tx in einer struktur. drv_data zeigt auf die struktur
tx ist void*
drv_data->tx ist unbekannten typs (aber wahrscheinlich irgendwas zahlenartiges oder ein pointer)