D'abord, définir deux expressions constantes sans parenthèses est ma faute :
#define BIG_INTERVAL 60 * 60 * 1000
#define SMALL_INTERVAL 1 * 1000
int i = 1;
if (i >= BIG_INTERVAL / SMALL_INTERVAL - 1)
{
printf("Oops!\n");
}
En if
après l'expansion de la macro est if(i >= 60 * 60 * 1000 / 1 * 1000 - 1)
.
Ce n'est pas mon intention. Mais je trouve quelque chose d'étrange si j'écris if (i >= 3600000000 - 1)
. C'est faux.
Quel type est 60 * 60 * 1000 / 1 * 1000 - 1
? int
?