Il n'a aucune garantie que la prochaine version de son compilateur fasse la même chose
Lorsque l'on dépend d'un undefined behavior, on lit la spec du compilo avant de le mettre à jour.
Il n'a aucune garantie que le changement d'une option de son compilateur continuera à faire un programme qui a le même résultat.
On lit la spec du compilo avant de faire joujou avec ce qui fonctionne.
Il ne faut pas avoir d'UB en se disant "je sais ce que je fais".
C'est le principe même des Undefined Behavior.
Quand tu programme en C, tu programme en C + Compilo + CPU. C'est pour ça que tu as les mots clés volatile / register / etc... pour contrôler le comportement du compilo dans ton code.
Le C est un langage bas niveau, c'est de l'ASM avec une syntaxe moins dégueulasse. Si tu fais de l'ASM sans lire la doc de ton CPU, ton programme est certain de ne pas être valide. C'est pareil en C, que tu évite les undefined behavior ou non.
Non, un programme avec un UB n'est pas un programme valide.
A ce moment là, le simple fait d'utiliser int rend ton programme invalide, car sa taille change selon le CPU.
[^] # Re: Encenser le C? Non!
Posté par David Delassus (site web personnel) . En réponse au journal C, un âge remarquable. Évalué à -5.
Lorsque l'on dépend d'un undefined behavior, on lit la spec du compilo avant de le mettre à jour.
On lit la spec du compilo avant de faire joujou avec ce qui fonctionne.
C'est le principe même des Undefined Behavior.
Quand tu programme en C, tu programme en C + Compilo + CPU. C'est pour ça que tu as les mots clés volatile / register / etc... pour contrôler le comportement du compilo dans ton code.
Le C est un langage bas niveau, c'est de l'ASM avec une syntaxe moins dégueulasse. Si tu fais de l'ASM sans lire la doc de ton CPU, ton programme est certain de ne pas être valide. C'est pareil en C, que tu évite les undefined behavior ou non.
A ce moment là, le simple fait d'utiliser int rend ton programme invalide, car sa taille change selon le CPU.
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg