Passage de paramètre de type Void en C

Bonjour, je suis en train de travailler sur un projet en C, où j'ai besoin de passer à un type inconnu de paramètre dans une fonction.

Par exemple, supposons que j'ai le texte suivant:

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

    return 1;

}

La raison pour laquelle élément variable est vide c'est parce qu'il y a 3 types de possibilités. Tous les 3 cependant, ne ont un membre de la variable "Nombre".

Lorsque j'essaie de compiler le code que j'ai écrit dans Eclipese, j'obtiens l'erreur suivante:

erreur: demande de membre de "Compter" dans
quelque chose de pas une structure ou d'une union

Je devine ce qui se passe, car le compilateur ne sait pas le type de "l'élément" avant de la main. Cependant, je ne vois pas pourquoi cela ne fonctionne pas.

Merci pour l'aide!

Pourquoi ne pas simplement écrire element.Count++ au lieu de l'appel de la fonction?
Pas directement pertinente pour la question, mais le comportement de element.Count = element.Count++; est pas défini. Par souci de simplicité, je vais énoncer la règle comme ceci: vous ne pouvez pas modifier une valeur plus d'une fois dans la même expression. Pour plus de détails, voir "6.5 Expressions" dans le C standard.

OriginalL'auteur Adam Lee | 2009-11-21