C Language operador de tamaño


Ejemplo

Con un tipo como operando.

Se evalúa en el tamaño en bytes, de tipo size_t , de objetos del tipo dado. Requiere paréntesis alrededor del tipo.

printf("%zu\n", sizeof(int)); /* Valid, outputs the size of an int object, which is platform-dependent. */
printf("%zu\n", sizeof int); /* Invalid, types as arguments need to be surrounded by parentheses! */

Con una expresión como operando.

Se evalúa en el tamaño en bytes, de tipo size_t , de objetos del tipo de la expresión dada. La expresión en sí no es evaluada. No se requieren paréntesis; sin embargo, debido a que la expresión dada debe ser única, se considera la mejor práctica usarlos siempre.

char ch = 'a';
printf("%zu\n", sizeof(ch)); /* Valid, will output the size of a char object, which is always 1 for all platforms. */
printf("%zu\n", sizeof ch);  /* Valid, will output the size of a char object, which is always 1 for all platforms. */