Mini-tutoriel : Différence entre char et chr (auto-analyse de code)
Introduction
Suite à la lecture d'un post sur le sujet ( http://www.developpez.net/forums/sho...d.php?t=296299 ) , j'ai vérifié dans mon debugger s'il y avait une différence entre les deux fonctions suivantes :
Code:
1 2 3 4
| function fchar (c: byte): char;
begin
fchar := char(c);
end; |
Code:
1 2 3 4
| function fchr (c: byte): char;
begin
fchr := chr(c);
end; |
En quelques secondes je me suis rendu compte que le compilateur avait traduit ces deux fonctions de la meme manière, les instructions en assembleur étant exactement les memes pour les deux fonctions. Ceci confirmait l'analyse de Droggo...
Citation:
Envoyé par Droggo
Pris d'une brutale poussée de courage, je suis allé voir le code généré :
c'est exactement le même code, ce qui confirme l'impression que j'avais eue en voyant les temps d'exécution très proches, avec l'un ou l'autre plus ou moins rapide selon le test
J'ai soudain été étonné de voir transparaitre dans les réponses suivantes, que l'analyse d'un binaire ou le debuggage de process n'est pas forcément évident pour beaucoup...
Prenant à mon tour mon courage à deux mains :mouarf: , je vai vous montrer comment vous pouvez démontrer sans aucun outil (ormis votre cerveau et un compilateur pascal ), que ces deux fonctions sont équivalentes...
J'espère que ce post vous sera utile ou vous interessera...