Conversión de argumentos: puntero (normal) a puntero de vacío, ¿se necesita lanzar?
Cuando se asigna ao desdevoid
-puntos no es necesario emitir (C99 §6.3.2.2 sub 1 / §6.5.16.1 sub 1). ¿Es esto también cierto cuando pasa un (por ejemplo,int
-) puntero a una función que espera unvoid
-¿puntero?
Por ejemplo:
void foo(void * p){
// Do something
}
int main(){
int i = 12;
foo(&i); // int * to void *: no cast needed?
}
Cuando compilo esto con GCC (4.8.1, MinGW-32) no obtengo errores ni advertencias (con-Wall
& -pedantic
).
A diferencia deen esta respuesta se sugiere que se necesita un elenco para esta convocatoria (para eliminar-Wformat
advertencias):
int main(){
int i = 12;
printf("%p\n", &i);
}
Pero en mi caso GCC no se queja.
Entonces: ¿son necesarios los moldes cuando se pasa unvoid
-punto a una función que espera unavoid
-¿puntero?