1

Petite question...
Sous TIGCC, que vaut-il mieux utiliser ???

Quelque chose du style
if(pos_cur==23)
  pos_cur = 30;
else if(pos_cur==30)
  pos_cur = 37;
else if(pos_cur==37)
  pos_cur = 44;
else if(pos_cur==44)
  pos_cur = 51;
else if(pos_cur==51)
  pos_cur = 58;
else
  pos_cur = 23;


alors son équivalent", l'opérateur ternaire ? :OU ?
Qui donne, comme "traduction" de ce qu'il y a au dessus, ceci :
pos_cur = (pos_cur==23 ? 30 : pos_cur==30 ? 37 : pos_cur==37 ? 44 : pos_cur==44 ? 51 : pos_cur==51 ? 58 : 23);


En espace mémoire, je crois que ça dépend des fois sad
mais en rapidité, c'est quoi le mieux ?
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

2

et pkoi pas switch-case/break?
[edit]Edité par Pen^2 le 01-12-2001 à 17:31:31[/edit]

3

il me semble que le when est le plus rapide!

4

ta ka décompiler er voir ce ke ca donne en machine.

sinon il parait ke le ? c un truc de parresseux et ke c pas bien a utiliser, vo mieu eviter.

5

Moi perso j'aime bien l'utiliser dans les macro, et les define

6

en regardant le source ASM, c'est pas gagné pour moi sad
trop movais en ASM.. et en plus, c du GNU asm... sad

sinon, j'aime bien l'utiliser.. c pr ça que je posais la question.
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

7

Perso je préfère le "when" pour n'appeller qu'une seule fois un fonction dont les paramètres changent en fonction d'une variable, mais aussi par habitude du TI-basic(c'est le meilleur test à mon avis en TI-Basic)
Plis fòs ba pengwen là !

mon site: http://www.slubman.info/
partie GP32: http://www.slubman.info/gp32
partie TI: http://www.slubman.info/ti

8

L'opérateur <cond> ? <exprSiVrai> : <exprSiFaux> produira toujours un code plus rapide qu'une imbrication de if.
Pour ton cas le switch est bien plus indiqué, il produira (avec les bonnes options) un table de saut imbattable en vitesse (du moins à partrir d'un certain nombre de case, mais le compilo choisit comme un grand le cas le plus favorable (s'il y a peu de case le code produit sera équivalent à une suite de if imbriqués)).
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

9

Dans un source de TN, j'avais vu k'il avait écrit en commentaire k GCC optimizait bcp mieux en taille les structure if..else..end k le switch (donc mieux k le "when" aussi je suppose)
[edit]Edité par Aghnar le 01-12-2001 à 22:53:43[/edit]

10

En basic, vaut mieux utiliser le when, je suppose qu'en C, c'est pareil...
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

11

sous TIGCC, le switch prend généralement le plus de mem... mais je l'utilise souvent qd j'ai besoin de vitesse... J'aurai donc raison ?
Le when ou le if, je les utilises qd je veux optimiser en mémoire (les menus, par exemple)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

12

Préfère "when" à if dans ce cas.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

13

oué, dans 99% des cas, ça fait moins d'occupation mémoire...
Mais je me demande s'il faut faire pareil dans le moteur du jeu, ou si ça fait ramer..
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

14

Je reprend...
L'opérateur <cond> ? <exprSiVrai> : <exprSiFaux> produira toujours un code plus rapide qu'une imbrication de if.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

15

oups.... j'avais raté quelque chose sad
Et pour le switch qui est plus rapide... quelles sont les options pour qu'il génére la table de sauts "imbatable en vitesse" ?
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

16

-O2 minimum !

Comme tu le dis, le switch prend généralement le plus de mem. Eh bien parceque TIGCC génère une JumpTable !

(tu n'as pas raté le post 8 du topic ?)
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

17

Vive -Os. grin
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

18

Avec -O2 mon prog est p-ê plus gros, mais il est bcp + rapide !
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

19

si j'ai du rater un ou deux posts sad
je relis tout.

Sinon, je me la suis joué bourrin total pour toute la partie "jeu" de Krypton : -O3
Le reste (menus, routines de Hscores, décompression), je l'ai mis en Os
(ça m'a pas fait perdre bcp de mem de passer le jeu en lui-même de Os à O3.
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall