Mais le langage ne va pas te tirer dessus si tu ne lui demande pas.
Pour des acceptions assez amusantes du mot "demander" parfois.
Prenons le code suivant :
void myfunc(int x, int y)
{
assert (x >= 0 && y >= 0);
if (x + y < 0) { /* overflow détecté */ }
...
}
Le "if" peut être supprimé par l'optimiseur car l'overflow des opérations arithmétiques signées n'est pas défini par la norme.
Ce genre de choses, soit tu les connais par coeur à l'avance (et la norme C ne fait pas 15 pages), soit elles peuvent faire mal quand elles t'arrivent.
Comme tu le sous-entends, le programmeur parfait n'est pas touché par ce genre de problèmes (et à lire les thuriféraires du C, on a toujours l'impression qu'ils se prennent pour des programmeurs parfaits). Mais un peu d'humilité est recommandé, dans n'importe quel métier...
[^] # Re: J'y crois pas.
Posté par Antoine . En réponse à la dépêche Un nouveau serveur httpd : Ashd, A Sane HTTP Daemon. Évalué à 7.
Pour des acceptions assez amusantes du mot "demander" parfois.
Prenons le code suivant :
void myfunc(int x, int y)
{
assert (x >= 0 && y >= 0);
if (x + y < 0) { /* overflow détecté */ }
...
}
Le "if" peut être supprimé par l'optimiseur car l'overflow des opérations arithmétiques signées n'est pas défini par la norme.
Ce genre de choses, soit tu les connais par coeur à l'avance (et la norme C ne fait pas 15 pages), soit elles peuvent faire mal quand elles t'arrivent.
Comme tu le sous-entends, le programmeur parfait n'est pas touché par ce genre de problèmes (et à lire les thuriféraires du C, on a toujours l'impression qu'ils se prennent pour des programmeurs parfaits). Mais un peu d'humilité est recommandé, dans n'importe quel métier...