¿Las declaraciones de función implícita en C generan realmente el código objeto?
En el curso de esta discusiónacerca de lanzar el valor de retorno demalloc
muchas personas han afirmado que la declaración implícita demalloc
causaría que el valor de retorno se convierta aint
luego reconvertido de nuevo aT*
posiblemente resultando en el truncamiento del puntero en situaciones donde:
sizeof(int) < sizeof(void*)
Esto implicaría que el compilador hace lo siguiente:
Enlaza y llama al código objeto correcto que definemalloc
Genera código de objeto para convertir el valor de retorno al tipo int más cortoGenera código de objeto para convertir de nuevo al tipo de puntero de destino más grande¿Podría alguien realmente probar que esto sucede? Decir con algún código de ejemplo en 64bit Linux?
Lo haría yo mismo, pero no tengo acceso a una máquina de 64 bits.