|
Bas de page | |
---|---|
Auteur | Sujet : question bete de #define |
Publicité | Posté le 07-05-2008 à 13:59:10 |
Alload | Si je me trompe pas le compilateur remplacera 3+4+5 par 12 lors d'une de ses phases d'optimisation. |
Elmoricq Modérateur | Ta première analyse est bonne, l'expression "3+4+5" sera remplacée telle quelle dans le code.
|
Taz bisounours-codeur | compile comme ça "gcc -E toto.c"
|
$@m | je suis sous mplab (pas top) avec C18 comme compilo merci pour les reponses l'origine (que j'ai oublié de préciser) : Alors j'ai mis le calcul dans un
ou
mais dans mon calcul il y a une puissance de 2... du coup le code ne tourne plus (calcul tres long) ; apres une reflexion de 1/4 de seconde j'ai remplacé la puissance de 2 par un decallage
et c'était bien plus rapide, mais ca prend tout de meme du temps (le calcul globale) d'où la question. Sinon les calcul sont toujours déterministe et remplacable en direct, mais ca me soule de me farcire les 50 rechercher/remplacer Message édité par $@m le 07-05-2008 à 14:21:23 |
Taz bisounours-codeur | évite les macros. c'est chiant parce que ça se passe pas au niveau du C: pas de typage. Si ton compilateur a ça, crée des constantes avec const |
$@m | ben oui mais là... pas possible de mettre la formule j'ai hésité pour les autres constantes (notamment pour le passage par adresse) mais en meme temps je suis tres limité en ram... donc moins de variable declarée const, moins de conso ^^ (c'est vrai ca d'ailleurs ?) Message édité par $@m le 07-05-2008 à 15:31:13 |
Taz bisounours-codeur | bah ça dépend la taille de ta constante, mais les quelques instructions pour charger la constantes ça peut facilement etre plus léger que plusieurs définitions locales. |
$@m | ah |
$@m | bon effectivement c'est assez chiant de ne pas avoir le type du #define...
|
Publicité | Posté le 07-05-2008 à 17:41:44 |
Elmoricq Modérateur | Uh ?!
|
tpierron | Est que t'as déjà entendu parlé du concept de promotion d'entier en C ? Parce que là, j'ai l'impression que tu colles des bouts de code pour que ça tombe en marche....
Message édité par tpierron le 07-05-2008 à 17:51:52 |
Elmoricq Modérateur | Ouais j'ai répondu pareil et effacé mon post juste après, à cause de :
|
$@m | bon... chez moi ca ne donne pas le resultat de Elmoricq mais en fait le 102.4 vient d'un calcul lui meme en maccro... j'ai fait plusieurs essai sur ce calcul, il semble qu'il ne peut y avoir que 1 chiffre apres la virgule.... donc j'ai fait *10 et effectivement tout rentre d'ans l'ordre. Bref c'est tou bon maintennat merci
Message édité par $@m le 07-05-2008 à 18:01:32 |
Elmoricq Modérateur | En ce cas, lis le post de tpierron, c'est exactement ton problème. |
$@m | avec ou sens unsigned c'est pareil, C18 le fait de manière transparente ; mais il calcul aussi avec une taille étrange qui provoque (suivant l'ordre du calcul) des resultats tres étranges... donc oui tpierron à raison, mais si c'était le probleme je m'enserrais vite accomodé maintenant j'ai la précision que je souhaite pour faire 1min @10-3 1s @10-2 juste la 1ms à 8% ais bon c'est normale... maintenant le blem, c'est de faire les divisions en rapide Message édité par $@m le 07-05-2008 à 19:08:51 |
Elmoricq Modérateur | C'est pas unsigned le problème qu'évoque tpierron, mais le fait que tu utilises des nombres décimaux dans des calculs d'entiers => promotion en entier => calcul faux.
|
$@m | j'avais bine compris... le truc c'est que ... meme en prenant 102, le resultat ne collais pas il y avait comme un debrdement ou un passage en signé ... bref une valeur completement abérente...
|
Elmoricq Modérateur | Toujours terminer ses fichiers par une ligne vide. J'crois c'est même normé d'ailleurs. Message cité 1 fois Message édité par Elmoricq le 08-05-2008 à 12:11:38 |
xilebo noone |
|
Joel F Real men use unique_ptr | ca date du glorieux temps antique je pense. C'est comme le coup des 80 colonnes de FORTRAN, une relique. |
jesus_christ votre nouveau dieu |
|
Joel F Real men use unique_ptr | 1+y+2 se fait en general optimisé lors de l'etape de CSE |
Publicité | Posté le |
Sujets relatifs | |
---|---|
Question syntaxe à la con ... | Temps d'execution d'un programme - question rapide |
[c#] objets -- peut être une question de noob | Question Xsl / Xpath |
Question RecordSet | Petite question rapide |
[RESOLU] "applet not initiated" : quelle erreur dans le code HTML ? | Question de gros débutant |
Question de design : WebServices et rétrocompatibilité | Requête SQL - Question plutôt simple :p |
Plus de sujets relatifs à : question bete de #define |