Valeur par défaut dans une structure

julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 - 27 oct. 2006 à 16:53
julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 - 27 oct. 2006 à 17:46
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

titi035 Messages postés 173 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 10 mai 2010
27 oct. 2006 à 17:18
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
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
27 oct. 2006 à 17:20
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
0
titi035 Messages postés 173 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 10 mai 2010
27 oct. 2006 à 17:24
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
0
julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 15
27 oct. 2006 à 17:46
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
0
Rejoignez-nous