avertissement: retour rend pointeur d'entier sans un plâtre, mais renvoie entier comme souhaité

J'essaie de trouver la bonne façon de retourner un entier à partir d'un void * appel de fonction à l'intérieur de C.

ie ..

#include <stdio.h>

void *myfunction() {
 int x = 5;
 return x;
}

int main() {
  printf("%d\n", myfunction());
  return 0;
}

Mais je reçois:

avertissement: retour rend pointeur d'entier sans un casting

Est-il un cast-je faire pour faire ce travail? Il semble de retour x sans problème, le vrai myfunction retours des pointeurs vers des structures et des chaînes de caractères ainsi de tous les travaux comme prévu.

Pourquoi faites-vous cela?
myfunction type de retour est void* mais le type de x est int. Pourquoi voulez-vous le faire fonctionner ? Quelle est la véritable fonction vous travaillez avec ?
Une assez bonne raison: mise à jour du code que quelqu'un d'autre l'a fait.

OriginalL'auteur user2662982 | 2013-08-08