¿Cómo funciona el operador sizeof en C? [duplicar]
Esta pregunta ya tiene una respuesta aquí:
Tipo de datos de salida del operador sizeof () 1 respuestaEn este código a continuación:
#include<stdio.h>
int main(void)
{
printf("%d",sizeof(int));
return 0;
}
Cuando se compila en gcc (Ubuntu 4.8.4-2ubuntu1 ~ 14.04.3) 4.8.4 compilador da advertencia:
el formato ‘% d’ espera un argumento de tipo ‘int’, pero el argumento 2 tiene el tipo ‘largo sin signo int’ [-Wformat =] printf ("% d", sizeof (int));
¿Por qué recibo esta advertencia? ¿Es que el tipo de retorno de sizeof es 'long unsigned int'?
Cuando reemplacé '% d' con '% ld', la advertencia desapareció.