Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Syntaxproblem bei Zeigern

Empfohlene Antworten

Veröffentlicht

Hallo,

worin besteht der Unterschied zwischen beiden Zeilen?

PDEVICE_EXTENSION pDeviceExtension = (PDEVICE_EXTENSION) (ConfigInfo->HwDeviceExtension);

PDEVICE_EXTENSION pDeviceExtension = ConfigInfo->HwDeviceExtension;

Der Compiler erzeugt in beiden Fällen den gleichen Code:

MOV EDX,[EBD+ConfigInfo]

MOV EAX,[EDX+04]

MOV [EBD+pDeviceExtension],EDX

Ich habe schon vergeblich in meinen Büchern gesucht, aber nichts gefunden.

Vielen Dank im voraus

Herzlichen Dank für die Antwort, es ist eine Datentypumwandlung.

Allerdings ist HwDeviceExtension ein Zeiger mit Typ PVOID.

pDeviceExtension ist der Zeiger auf die Struktur "PDEVICE_EXTENSION".

Zeiger nehmen doch bei x86 immer 4Bytes ein ?

HwDeviceExtension und pDeviceExtension müßten demnach kompatibel sein ?

Ist das der Grund, wieso der Compiler es anstandslos schluckt ?

Nochmals herzlichen Dank - da hätte ich mich totsuchen können.

Zeiger nehmen doch bei x86 immer 4Bytes ein ?
Das hängt weniger von der Architektur als von der Adressbusbreite ab - Es gibt x86-Systeme mit weniger als 32 Bit ;)

HwDeviceExtension und pDeviceExtension müßten demnach kompatibel sein ?

Ist das der Grund, wieso der Compiler es anstandslos schluckt ?

HwDeviceExtension ist vermutlich ein void-Zeiger. In C ist ein void-Zeiger implizit in jeden anderen Zeigertyp konvertierbar.

In C++ übrigens nicht - da ist der Cast notwendig, die zweite Zeile lässt sich in C++ nicht kompilieren, wenn HwDeviceExtension ein void* ist.

Danke - ein wertvoller Tip.

Ich habe von Anfang an in den Projekteigenschaften von Visual Studio angegeben, daß der Compiler C Code kompilieren soll.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.