Próbuję dowiedzieć się właściwy sposób zwracać liczbę całkowitą od void * Wywołanie funkcji w obrębie Costrzeżenie: powrót sprawia wskaźnik z liczbą całkowitą bez obsady, ale zwraca liczbę całkowitą jako pożądany
tj ..
#include <stdio.h>
void *myfunction() {
int x = 5;
return x;
}
int main() {
printf("%d\n", myfunction());
return 0;
}
ale wciąż otrzymuję:
ostrzeżenie: powrót sprawia wskaźnik z liczbą całkowitą bez oddanych
Czy muszę wykonać rzutowanie, aby to zadziałało? Wydaje się zwracać x bez problemu, funkcja myfunction zwraca wskaźniki do struktur i ciągów znaków, które działają zgodnie z oczekiwaniami.
Dlaczego to robisz? – orlp
'typem zwrotnym' myfunction' jest 'void *', ale typ 'x' to' int'. Dlaczego chcesz, żeby to działało? Jaka jest prawdziwa funkcja, z którą masz do czynienia? – Mahesh
Wystarczająco dobry powód: zachowanie kodu, który zrobił ktoś inny. –