J'utilise quelque chose comme ce qui suit dans mon code C99:conversion entier Implicite dans C99 vs vérificateur de code statique
uint64_t x = 1000ULL * (5U * 1000U);
Je suppose U
signifie toujours unsigned int
.
Mon vérificateur de code statique se plaint maintenant de la conversion de type implicite ici, ce qui est correct. Cependant, il ne se plaint pas de unsigned long long
vs unsigned int
. Il se plaint à propos de unsigned char
vs unsigned short
à la place. Donc mes questions sont: Est-ce que ces littéraux peuvent être interprétés comme quelque chose d'autre (surtout plus petit) que unsigned long long
et unsigned int
dans C99?