IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

#define variable (astuce?)


Sujet :

C

  1. #1
    Nouveau candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 1
    Par défaut #define variable (astuce?)
    Bonjour,
    voilà je suis sur une adaptation de code qui malheureusement utilise beaucoup trop de variables globales et de define pour moi. En effet j'aimerai pouvoir définir un "define" variable...du coup c'est plus un define. Bref en clair au lieu de #define TOTO 6; j'aimerais pouvoir lire un parametre d'un fichier texte et le rentrer ds une variable de type int (par ex. developpezcomEstUnSuperSite) et ensuite faire #define TOTO developpezcomEstUnSuperSite. Seulement le problème c'est que pour compiler certains tableaux dans le programme sont de tailles fixes (vraiment beaucoup de tableaux...)de taille TOTO qui est connu grâce au define au départ. Donc si j'enlève le define, le compilo ne va pas aimé car sont tableau statique va etre de taille variable...lol là je ne suis plus très clair peut-être....bref si quelqu'un avait une petite astuce pour remedier a ce probleme sachant que déclarer tous les tableaux en dynamique est peine perdue tellement les fonctions s'appellent entre elles et les tableaux sont inombrables...alors que j'aimerais que leurs tailles soient controlées par l'utilisateur sans rentrer dans le code...

    Désolé d'avance pour ce pavé, je vous remercie si vous m'avez lu en espérant qu'une bonne étoile puisse m'apporter une aide précieuse.
    Bonne soirée

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Il faut savoir que #define est une macro, elle ne fait rien de magique : son but est de faire effectuer du remplacement de code lors du preprocessing, étape juste avant la compilation.
    Lors de la compilation, il n'y a plus de #define et compagnie. Et à l'exécution non plus, forcément.

    En outre, un tableau fixe est... fixe. Sa valeur est connue à la compilation et il n'y a aucun moyen de changer sa taille à l'exécution.
    Si sa taille peut varier, tu ne peux pas y échapper : il faut créer des tableaux dynamiques (via malloc, etc)... ou alors des VLA (mais compilables en C99 seulement).

    Si le code à adapter est blindé de globales, c'est déjà signe d'un gros problème de codage. Rares sont les codes nécessitant des globales, il faut vraiment une bonne raison pour les justifier.

    Le mieux, à mon avis, au lieu de rafistoler le code, ce serait plutôt de le récrire proprement.

Discussions similaires

  1. Defines "variables" Pour Bibliotheques dynamiques
    Par lagarkane dans le forum C++
    Réponses: 4
    Dernier message: 20/03/2011, 08h51
  2. Réponses: 4
    Dernier message: 15/02/2006, 17h24
  3. Utilisation de DS (define space) || definir une variable ?
    Par TabrisLeFol dans le forum Assembleur
    Réponses: 3
    Dernier message: 02/02/2006, 18h39
  4. defines + variables
    Par Anduriel dans le forum Langage
    Réponses: 3
    Dernier message: 14/01/2006, 16h32
  5. Variable interprétée et un define
    Par __fabrice dans le forum Langage
    Réponses: 4
    Dernier message: 05/01/2006, 22h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo