60

Polymorphisme de fonctions (plusieurs fonctions portant le même nom avec des paramètres différents)

Ca permet de faire comme ETP (lol) au niveau de la concanétation de string, bref réaliser l'opérateur & de concanétation c'est marqué en commentaire au début de la source).
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

61

Ca montre aussi la puissance du préprocesseur C.
Avoir un préprocesseur me manque parfois quand je fais du Java ("public static final int TOTO = 1;", c'est moche, là où une propagation des constantes améliorerait la localité des accès mémoire sick).
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

62

Tant que Jyaif n'aura pas compris tout ça, il continuera à défendre Java.
Tout ce qui passe pas par le port 80, c'est de la triche.

63

Thibaut (./59) :
C'est quoi ce truc illisible ? smile Ca fait quoi ?

Concaténation en chaînes de caractères de n'importe quels types, par exemple:
int x=5;
DrawStr(0,0,C("x=",x),A_REPLACE);

Il y a aussi S: S(x) est équivalent à C(x,""), mais plus efficace.
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é

64

Je continue ici la discussion sur le preprocesseur commencé ici :
topics/103139-le-compilateur-gtc-est-il-mauvais/15#427

J'ai l'impression que (sur la version oncalc du-moins, j'ai pas testé la version PC) le preprocesseur s'emmèle les pinceaux dès qu'il commence a y avoir trop de symboles/constantes définis et ce, sur plusieurs fichiers source.

Je m'explique :
Lorsque j'essai de faire de la compilation conditionnelle de multiples projets en meme temps j'obtient des trucs bizares.
J'écris dans un fichier :
enum { PROJET_A = 1, PROJET_B = 2};
#define PROJET_ACTIF PROJET_A

Dans un autre :
#if PROJET_ACTIF == PROJET_A
//etc...
#endif

#if PROJET_ACTIF == PROJET_B
//etc...
#endif

Encore dans un autre :
void Test(void )
{
  #if PROJET_ACTIF == PROJET_A
    printf("Projet_A");
  #endif

  #if PROJET_ACTIF == PROJET_B
    printf("Projet_B");
  #endif
}

Bon, ce n'est qu'un exemple, mais actuellement j'ai un fichier qui doit contenir la déclaration d'une bonne centaine de constantes/symboles divers et variés qui lui-meme inclu d'autres fichiers de ce genre (joli bordel en vue quoi magic )
Le probleme, c'est que lorsque je compile ca, en mettant par exemple "#define PROJET_ACTIF PROJET_B", normalement je devrais m'attendre (sauf grosse erreur de ma part) a avoir au niveau de la fonction Test(), QUE printf("Projet_B"); de compilé dans cette fonction non ? confus
Ben c'est pas le cas puisqu'il me compile printf("Projet_B"); ET printf("Projet_A"); eeek
J'arrive pas a savoir si c'est parce que j'ai trop déclaré de constantes/symboles ou si c'est parce que c'est réparti sur plusieurs fichiers... confus
Auriez-vous une idée de là où ca peut venir ? Et si jamais le probleme est ma maniere de proceder merci de me le dire hehe happy

Edit > Corrections.
Ajout > Quand j'aurai un peu de temps j'irai me plonger dans le preprocesseur de GTC mais bon...vu mon niveau actuel je risque de pas trouver grand chose bang
"De l'Art de faire des Posts qui ne servent a Rien." (c) Ximoon

15:13 @Ximoon - 29-11-2005
"C'est débile ce sondage, une fois de plus Dude, tu ne sers à rien #hehe#" #love# Il est collector celui là ^^

18:56 @Ximoon - 09-10-2010
"Mince Dude sert à quelque chose %) (pas taper :D )" Owii xD #trilove#

65

Tu peux m'envoyer tes sources ? je vais essayer avec la dernière version. Ta version FlashApp date de quand ?
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.

66

essaye de faire "rebuild all" si ca existe.

67

Remplace ton enum par des #define. Le préprocesseur ne lit pas les enum (qui sont des constantes au niveau du compilateur), donc pour lui, PROJET_A et PROJET_B ne sont pas définis, et donc il les traîte comme zéro tous les deux.
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é

68

eeek eeek eeek eeek eeek eeek eeek eeek eeek eeek eeek eeek eeek eeek eeek
Roh mon Dieu!!!!!!!!!!!!!!!!
Merci Kevin : sans toi je n'aurais jamais compris pourquoi le preprocesseur plantait là-dessus happy
Merci beaucoup!! happy
J'galere pour rien depuis 2 jours pour rien en fait sorry
Heuresement que t'as l'oeil et le Bon tongue

Impardonnable....
• Dude parti se faire fouetter trilove fouet


Tellement evident que je vais pas en dormir de la nuit bourre zen lolpaf toilettes drapeaublanc fucktricol hum2 fireball trivil tripaf
Ze merite une bonne nuit xD
ZZZZZzzzzZZZzzZZZzzzzzzzZZZzzzzzzZZzzzzzzzzzzzzzzZzZZZzzzZzzzzZzzzZZZZzzZzz.... zzz
"De l'Art de faire des Posts qui ne servent a Rien." (c) Ximoon

15:13 @Ximoon - 29-11-2005
"C'est débile ce sondage, une fois de plus Dude, tu ne sers à rien #hehe#" #love# Il est collector celui là ^^

18:56 @Ximoon - 09-10-2010
"Mince Dude sert à quelque chose %) (pas taper :D )" Owii xD #trilove#

69

picol
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.

70

Meuh non embarrassed

tongue
"De l'Art de faire des Posts qui ne servent a Rien." (c) Ximoon

15:13 @Ximoon - 29-11-2005
"C'est débile ce sondage, une fois de plus Dude, tu ne sers à rien #hehe#" #love# Il est collector celui là ^^

18:56 @Ximoon - 09-10-2010
"Mince Dude sert à quelque chose %) (pas taper :D )" Owii xD #trilove#

71

Une nouvelle question grin
J'ai besoin dans certains #define de convertir des nombres (longueur tres variable c'est pourquoi je precise pas) vers une chaine.
Du genre :
#define MACHIN 54116543231

et j'aurai besoin d'utiliser une macro (ou autre si ya plus simple) avec ca :
#define BIDULE TOCHAR(MACHIN)

qui me le transformerai donc en ca :
"54116543231" (BIDULE)

Est-ce possible, si oui comment ?

Je connais le coup du :
#define TOSTRING(x) #x
mais le probleme c'est que dans mon cas il me sort "MACHIN" au lieu de la valeur...
Alors comment faire ? confus magic
"De l'Art de faire des Posts qui ne servent a Rien." (c) Ximoon

15:13 @Ximoon - 29-11-2005
"C'est débile ce sondage, une fois de plus Dude, tu ne sers à rien #hehe#" #love# Il est collector celui là ^^

18:56 @Ximoon - 09-10-2010
"Mince Dude sert à quelque chose %) (pas taper :D )" Owii xD #trilove#

72

73

bang
Mais c'est qu'il se moque de moi avec mes smilleys l'autre ! eeek

Tiens pour la peine : trigic

magic
"De l'Art de faire des Posts qui ne servent a Rien." (c) Ximoon

15:13 @Ximoon - 29-11-2005
"C'est débile ce sondage, une fois de plus Dude, tu ne sers à rien #hehe#" #love# Il est collector celui là ^^

18:56 @Ximoon - 09-10-2010
"Mince Dude sert à quelque chose %) (pas taper :D )" Owii xD #trilove#

74

75

http://developer.apple.com/documentation/DeveloperTools/gcc-4.0.1/cpp/Stringification.html wink

#include <stdio.h>
#include <stdlib.h>

#define NUMBER 3
#define xstr(s) str(s)
#define str(s) #s

int main(int argc, char *argv[])
{
printf(xstr(NUMBER)"\n");
system("PAUSE");
return 0;
}
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

76

./74 > J'l'aime bien mon 'tit magic ^^ magic

./75 > Merci geogeo tongue
Je viens de voir un truc qui m'avait échappé :
#define xstr(s) str(s)
#define str(s) #s
#define foo 4

Moi je declarais pas #define xstr(s) str(s) parce que je croyais que ca servais a rien magic
Mais en relisant il semblerai que cette deuxieme macro permette d'evaluer l'argument et c'est ce que je cherche, merci wink
"De l'Art de faire des Posts qui ne servent a Rien." (c) Ximoon

15:13 @Ximoon - 29-11-2005
"C'est débile ce sondage, une fois de plus Dude, tu ne sers à rien #hehe#" #love# Il est collector celui là ^^

18:56 @Ximoon - 09-10-2010
"Mince Dude sert à quelque chose %) (pas taper :D )" Owii xD #trilove#

77

J'ai pas pigé. Ca change quoi ?
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.

78

Ben si t'ecris :

#define MACHIN 3
#define BIDULE str(MACHIN)

Ca te donnera : "MACHIN"

Alors que si tu ecris :

#define MACHIN 3
#define BIDULE xstr(MACHIN)

Ca te donnera "3" wink

(En reprennant les #defines de geogeo)

- Dans un cas, l'appel a str() te remplace l'argument par une chaine de chars
- Dans l'autre cas, l'appel a xstr() te remplace l'argument par une chaine de chars mais APRES évaluation de l'argument, et c'est là toute la difference wink

Regardes bien les macros de geogeo ca devrait pas te poser probleme magic
"De l'Art de faire des Posts qui ne servent a Rien." (c) Ximoon

15:13 @Ximoon - 29-11-2005
"C'est débile ce sondage, une fois de plus Dude, tu ne sers à rien #hehe#" #love# Il est collector celui là ^^

18:56 @Ximoon - 09-10-2010
"Mince Dude sert à quelque chose %) (pas taper :D )" Owii xD #trilove#

79

D'ailleurs il y a ce hack quelque part dans TIGCCLIB. La stringification a un comportement assez bizarre.
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é

80

(Surtout avec GTC : l'imbrication n'est pas supportée; je sais pas si c'est voulu... smile )
"De l'Art de faire des Posts qui ne servent a Rien." (c) Ximoon

15:13 @Ximoon - 29-11-2005
"C'est débile ce sondage, une fois de plus Dude, tu ne sers à rien #hehe#" #love# Il est collector celui là ^^

18:56 @Ximoon - 09-10-2010
"Mince Dude sert à quelque chose %) (pas taper :D )" Owii xD #trilove#

81

Bah, là, si GTC ne suit pas le standard C, c'est un autre problème... roll
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é

82

Tu as les soruces. Tu es donc invité à implémenter ceci. Ce sera plus utile que lever les yeux aux ciel wink
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.

83

Une nouvelle question (toujours en rapport avec le preprocesseur - de GTC - ) :

Maintenant j'arrive à "stringifier" n'importe quoi avec le preprocesseur.
Comme par exemple :
#define TRUC 1
#define str(x) xstr(x)
#define xstr(x) x
#define BIDULE str(TRUC) // Ce qui me donne : "1"

Mais comme faire l'opération inverse ?
Cad :
#define TRUC "toto"
me donnerait : toto
?

J'ai beau chercher, je trouve pas smile
"De l'Art de faire des Posts qui ne servent a Rien." (c) Ximoon

15:13 @Ximoon - 29-11-2005
"C'est débile ce sondage, une fois de plus Dude, tu ne sers à rien #hehe#" #love# Il est collector celui là ^^

18:56 @Ximoon - 09-10-2010
"Mince Dude sert à quelque chose %) (pas taper :D )" Owii xD #trilove#

84

Il serait plus judicieux d'avoir des macros de cette forme si tu as besoin d'employer la "destringification".

#define TRUC toto
...


Et donc d'utiliser str quand tu as besoin d'avoir une chaîne de caractères ?
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

85

Moé... magic
Je sais pas si ca conviendrai je vais voir ca happy
Merci en tous cas geogeo wink

Ah ben non :

#define ESPACE ' '

Tu fais comment pour lui ? magic ^^'
"De l'Art de faire des Posts qui ne servent a Rien." (c) Ximoon

15:13 @Ximoon - 29-11-2005
"C'est débile ce sondage, une fois de plus Dude, tu ne sers à rien #hehe#" #love# Il est collector celui là ^^

18:56 @Ximoon - 09-10-2010
"Mince Dude sert à quelque chose %) (pas taper :D )" Owii xD #trilove#

86

#define ESPACE 32 ? cheeky
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

87

#define ESPACE ' '
ne marche pas?

88

Ca affichera "' '" ce qu'il ne veut pas je penses ?
D'ailleur Dude que veux-tu faire au juste ?
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

89

./88 > Exactement! Ben en fait j'essai de generer mes numeros de version, mais je crois que je m'y prend mal.
Je genere un truc du genre : 0.1.0.12, que je "stringifie" : "0.1.0.12".
C'est tout bete mais là j'essai juste d'ajouter un 'v' devant, et un ' ' (espace) derriere et j'y arrive pas ^^'
"De l'Art de faire des Posts qui ne servent a Rien." (c) Ximoon

15:13 @Ximoon - 29-11-2005
"C'est débile ce sondage, une fois de plus Dude, tu ne sers à rien #hehe#" #love# Il est collector celui là ^^

18:56 @Ximoon - 09-10-2010
"Mince Dude sert à quelque chose %) (pas taper :D )" Owii xD #trilove#

90

"v""0.1.0.12"" " C'est ça que tu veux
Donc en gros

puts("v"str(VERSION)" "); ?

Après si tu veux créer ta macro bah là hein faut manière le # ^^
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.