stavo cercando di eseguire questo codice tramite il compilatore gcc:uscita strano senza typecasting
#include <stdio.h>
int main()
{
unsigned long long int x;
x = 75000 * 75000;
printf ("%llu\n", x);
return 0;
}
Ma dato uscita sbagliata.
Allora ho provato questo:
#include <stdio.h>
int main()
{
unsigned long long int x;
x = (unsigned long long)75000 * (unsigned long long)75000;
printf ("%llu\n", x);
return 0;
}
e ha dato uscita corretta!
Perché è così?
Si noti che è necessario eseguire il cast di una delle costanti per promuovere l'intera espressione. – Clifford