Sabemos que sizeofes un operador que se usa para calcular el tamaño de cualquier tipo de datos y expresión, y cuando el operando es una expresión, se pueden omitir los paréntesis.
int main()
{
int a;
sizeof int;
sizeof( int );
sizeof a;
sizeof( a );
return 0;
}
el primer uso de sizeofes incorrecto, mientras que otros son correctos.
Cuando se compila usando gcc, aparecerá el siguiente mensaje de error:
main.c:5:9: error: expected expression before ‘int’
Mi pregunta es por qué el estándar C no permite este tipo de operación. ¿Causará sizeof intalguna ambigüedad?
sizeof +(int)atiene la ventaja *&de compilar realmente ;-)
+. Por ejemplo, sizeof +(char)a == sizeof(int)debido a la promoción de números enteros, es probable que sea menos propenso a errores solo poner entre paréntesis si hay alguna preocupación acerca de la expresión de la que está tratando de tomar el tamaño. Así que no estoy seguro de ir tan lejos como para llamarlo "un uso", aunque admito que lo usé ...
sizeof (int)a.