Übergeben Void-Typ-parameter in C

Hallo da bin ich an einer Aufgabe arbeiten und in C, wo ich übergeben zu müssen, in einen unbekannten Typ eines Parameters in einer Funktion.

Beispielsweise angenommen ich habe die folgenden:

int changeCount(void* element)
{
    element.Count = element.Count++;

    return 1;

}

Der Grund, warum variable-element ist ungültig, weil es gibt 3 Arten von Möglichkeiten. Alle 3 aber haben eine member-variable namens "Count".

Wenn ich versuche zu kompilieren, den eigentlichen code, den ich schrieb in Eclipese, bekomme ich die folgende Fehlermeldung:

error: request for member 'Count' in
etwas, was keine Struktur oder union

Ich vermute, dass dies geschieht, weil der compiler nicht wissen, welche Art von "element", bevor die hand. Aber ich verstehe nicht, warum das nicht funktioniert.

Danke für die Hilfe!

  • Warum nicht einfach schreiben element.Count++ anstelle von aufrufen der Funktion?
  • Nicht direkt relevant für die Frage, aber das Verhalten von element.Count = element.Count++; ist nicht definiert. Der Einfachheit halber werde ich-Zustand die Regel wie folgt: Sie können nicht ändern Sie einen Wert, der mehr als einmal im gleichen Ausdruck. Für vollständige details finden Sie unter "6.5 Ausdrücke" in der C-standard.
InformationsquelleAutor Adam Lee | 2009-11-21
Schreibe einen Kommentar