Valeur par défaut dans une structure

Signaler
Messages postés
452
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
19 décembre 2008
-
Messages postés
452
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
19 décembre 2008
-
Je cherche un moyen de mettre des valeurs pas défaut dans une structure.
Je m'explique par un exemple:

struct s_a
{
    int i;
    int j;
};

Plus loin dans le programme, j'ai besoin d'utiliser cette structure:
s_a mastruct;

Lorsque je fais ça, j'aimerais que mon i et mon j de ma structure est des valeurs par défaut, est-ce faisable?

C'est dans le cas du codage d'une pile logicielle pour le protocole MODBUS. La norme de MODBUS précise des valeurs par défaut pour certains paramètres, et j'aimerais que lors de "l'instanciation" de ma structure, j'ai ces valeurs par défaut dedans, ou à défaut qu'une fonction qui viendrait mettre une valeur dans la structure soit appelée (genre les constructeurs en C++).

Merci.
Vive le C
Savon

4 réponses

Messages postés
173
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
10 mai 2010

salut, tu peux utiliser le constructeur de la structure :

struct MyStruct
{
    MyStruct(int x, int y)
    {
        a = x;
        b = y;
    }
    int a;
    int b;

};

void main()
{
    MyStruct st=MyStruct(100,100);
}

d'autre solutions ici

---------------------
http://titi0035.free.fr
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Si tu es en C++, tu peux mettre un constructeur dans ta structure. En, pas d'initilisation automatique à ma connaissance

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
173
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
10 mai 2010

encore mieux pour n'avoir les valeur par défault que dans la structure :

struct MyStruct
{
    MyStruct()
    {
        a = 100;
        b = 111;
    }
    int a;
    int b;
};

void main()
{
    MyStruct st;
    printf("%i\n",st.a);
}

---------------------
http://titi0035.free.fr
Messages postés
452
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
19 décembre 2008
10
Vecchio: Merci, tu confirmes ce que je pressentais.
Titi035: Ca marche en C++ ce que tu dis, mais pas en C, dommage parcque la dernière solution correspondait exactement à ce que je cherchais à faire.

Merci à tous les deux en tout cas.
Vive le C
Savon