Bonjour,
je voulais savoir s'il était possible de définir un tableau grâce à un #define.
Imaginons que je veuille, avec la sdl2, créer 4 textures contenant des textes.
Pour cela, j'ai créé un tableau avec les 4 messages textes. Et je crée mes textures en faisant appel à chaque case l'une après l'autre.
Voici ce que je fais et cela marche très bien
Dans un fichier de déclaration
Dans un autre fichier, dans une fonction d'initialisation (en ayant definit Images Jeton)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 typedef struct Images Images; struct Images { SDL_Surface *Icone; SDL_Texture *Image[NbImagesMax];//tableau de NbImagesMax=4 images SDL_Texture *Message[NbMessagesMax];//tableau de NbMessagesMax=2 messages SDL_Rect DimensionImage[NbImagesMax]; //pour chaque image, dimensionner w et h SDL_Rect DimensionMessage[NbMessagesMax]; //pour chaque texte, dimensionner w et h }; #define NbMessagesMax 4//car il y a 4 messages
Comme j'aimerais garder et adapter les messages et le nombre de messages de cette fonction d'initialisation pour un autre projet, j'aimerai avoir quelque chose du type (histoire de ne pas à avoir à modifier l'adaptation à plusieurs endroits du prog) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 InitialisationDesMessages(...) char *ListeMessage[] = {"message1","message2", "message3","message4"};//liste des textes a charger [...] for (i=0; i<NbMessagesMax; i++)// chargement des autres images + transparence { Jeton->Message[i]=ChargementMessages(Renderer,ListeMessage[i],i,police); if(Jeton->Message[i]==NULL)//si pb de chargement { [...gestion si erreur...] } else { SDL_QueryTexture(Jeton->Message[i], NULL, NULL, &(Jeton->DimensionMessage[i]).w, &(Jeton->DimensionMessage[i]).h); } } fprintf(fichierErreur, "Nombre de messages correctement chargés : %d \n", i);//il y en a i messages [...] }
Or ceci ne semble pas fonctionner.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 #define NbMessagesMax 4//car il y a 4 messages #define ListeMessage[1] =message1; #define ListeMessage[2] =message2; #define ListeMessage[3] =message3; #define ListeMessage[4] =message4;
Quelqu'un aurait la gentillesse de m'aider?
Cordialement
Partager