initialisation chaine de caracteres dans structure
Bonjour !
Je me demandais si il est possible d'initialiser une chaine de caracteres avec une bete chaine mais avec parametre. Je m'explique
voici ce que j'ai :
Code:
1 2 3 4 5
| struct erreurs {
...
char nombreJoueurs[80] = "Erreur : le nombre de joueurs maximum est %d", NOMBREJOUEURS_MAX;
...
} erreurs; |
Je sais que ce n'est pas permis mais c'est pour que vous puissiez comprendre. C'est plus qu'une simple initialisation.
Re: initialisation chaine de caracteres dans structure
Citation:
Envoyé par mrttlemonde
Bonjour !
Je me demandais si il est possible d'initialiser une chaine de caracteres avec une bete chaine mais avec parametre. Je m'explique
voici ce que j'ai :
Code:
1 2 3 4 5
| struct erreurs {
...
char nombreJoueurs[80] = "Erreur : le nombre de joueurs maximum est %d", NOMBREJOUEURS_MAX;
...
} erreurs; |
Je sais que ce n'est pas permis mais c'est pour que vous puissiez comprendre. C'est plus qu'une simple initialisation.
En supposant que NOMBREJOUEURS_MAX est une macro définie par une constante, genre :
#define NOMBREJOUEURS_MAX 100
tu peux faire ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
#include <stdio.h>
#define NOMBREJOUEURS_MAX 100
/* macros generiques 'stringize' */
#define S_(s) #s
#define STR(s) S_(s)
#define NOMBREJOUEURS_MAX 100
static const struct erreurs
{
char const nombreJoueurs[80];
}
erreurs =
{
"Erreur : le nombre de joueurs maximum est " STR (NOMBREJOUEURS_MAX),
};
int main(void)
{
printf ("err = '%s'\n", erreurs.nombreJoueurs);
return 0;
} |
qui donne :
Code:
1 2
|
err = 'Erreur : le nombre de joueurs maximum est 100' |