Forum Programmation.c static est structure

Posté par  .
Étiquettes : aucune
0
2
août
2004
Salut a tous.


J'essaie vainement ( vue les messages d'erreur imposant )
de placer un static int dans une de mes structure.
Et cela beug a mort ( compile pas au moins 50 lignes de message d'erreur ).

Bon si en fait c'est possible dites moins comment.

Aussi non j'avais penser faire une fonction qui selon l'argument passer en parametre incremente la variable ou retourne le resultat, puis mettre un pointeur sur cette fonction ( je sais pas encore le faire :°) ) dans ma structure.

Ma question est-ce realisable, et fonctionel ( j'entend par la que ce soit pas nul comme moyen de programmation ? )

Merci et a +
  • # static

    Posté par  (site web personnel) . Évalué à 2.

    > J'essaie vainement de placer un static int dans une de mes structure.

    c'est pas possible en C, utilise une variable globale. Par contre, j'ai pas compris la suite de ta question
  • # Mouai ... ;)

    Posté par  . Évalué à 3.

    un static int dans une de mes structure.
    Ca n'a aucun sens .... Si c'est vraiment ce que tu cherche met un int* dans ta structure pointant vers un static int.

    Aussi non j'avais penser faire une fonction qui selon l'argument passer en parametre incremente la variable ou retourne le resultat, puis mettre un pointeur sur cette fonction ( je sais pas encore le faire :°) ) dans ma structure.

    Les solutions les plus simples sont toujours les meilleures. Plutot que de multiplier le nombre d'arguments possibles d'une fonction, il est plus judicieux d'en faire plusieurs. Tu obtiendras un code plus clair et comprehensible, et au passage tu pourras meme te passer de commentaires :

    void incMaVarible();
    int getMaVarible();

    est certainement plus clair que

    /**
    * incremente ou retourne la variable en fonction de l'argument f
    * [....]
    */
    int getOrInc( int f );


    En ce qui concerne les pointeurs de fonction, il s'agit d'une technique tres employée pour la gestion des IHM, evenements => cf callback.

    Pour ce qui est de la modelisation : un structure contenant un int par exemple et un pointeur sur fonction permet d'implementer un debut des notions de classe et de polymorphisme en C. C'est pas forcement crade, mais c'est pas simple non plus.
    • [^] # Re: Mouai ... ;)

      Posté par  . Évalué à 1.

      « - un static int dans une de mes structure.
      - Ca n'a aucun sens
      »

      Bien sûr que si ça a du sens! C'est d'ailleurs pour cela que Stroustrup l'a rajouté en C++...

      « Plutot que de multiplier le nombre d'arguments possibles d'une fonction, il est plus judicieux d'en faire plusieurs. »

      Je pense qu'il voulait ne faire qu'une seule fonction pour placer un static int dedans (accessible que de la fonction). Mais effectivement c'est quand même crad, il vaut mieux passer par une variable globale comme précisé plus haut.
      • [^] # Re: Mouai ... ;)

        Posté par  . Évalué à 2.

        Si c'est possible en C++, alors appeler g++ à la place de gcc devrait résoudre le problème, non? Bon, ce n'est pas une solution très élégante, mais cela devrait fonctionner...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.