Sappiamo che sizeof
è un operatore utilizzato per calcolare la dimensione di qualsiasi tipo di dato ed espressione, e quando l'operando è un'espressione, le parentesi possono essere omesse.
int main()
{
int a;
sizeof int;
sizeof( int );
sizeof a;
sizeof( a );
return 0;
}
il primo utilizzo di sizeof
è sbagliato, mentre altri hanno ragione.
Quando viene compilato utilizzando gcc, verrà fornito il seguente messaggio di errore:
main.c:5:9: error: expected expression before ‘int’
La mia domanda è perché lo standard C non consente questo tipo di operazione. Voleresizeof int
ambiguità?
sizeof +(int)a
ha il vantaggio rispetto *&
alla compilazione effettiva ;-)
+
. Ad esempio, a sizeof +(char)a == sizeof(int)
causa della promozione di numeri interi, è probabilmente meno soggetto a errori solo da mettere tra parentesi se c'è qualche preoccupazione per l'espressione di cui stai cercando di prendere la dimensione. Quindi non sono sicuro che sarei arrivato al punto di chiamarlo "un uso", anche se ammetto di averlo usato ...
sizeof (int)a
.