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 avec une chaine de caractères


Sujet :

C

  1. #1
    Nouveau membre du Club
    Profil pro
    Recette MOE/MOA
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Recette MOE/MOA

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Points : 36
    Points
    36
    Par défaut #define avec une chaine de caractères
    Bonjour,

    Pour faire tourner mon interface GTK, j'utilise des chemins d'accès du style "/home/user/Musique". Est-il possible de mettre ce chemin d'accès dans une ligne #define ?

    Merci de vos réponses

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    Ca me paraît assez simple à tester non ? La réponse est oui.

  3. #3
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    oui, mais cela fait un peu un chemin en dur non?
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    Justement, en mettant ça dans un define, tu peux le changer facilement, y compris via des arguments passés au préprocesseur au moment de la compilation (ie gcc -DCHEMIN="/toto"), la ligne de commande de compilation pouvant elle même être générée à coup de sed ou de ce que tu veux.

  5. #5
    Nouveau membre du Club
    Profil pro
    Recette MOE/MOA
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Recette MOE/MOA

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Points : 36
    Points
    36
    Par défaut
    Merci, ça fait partie des choses toujours utiles à savoir.

  6. #6
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par teuf13 Voir le message
    Justement, en mettant ça dans un define, tu peux le changer facilement, y compris via des arguments passés au préprocesseur au moment de la compilation (ie gcc -DCHEMIN="/toto"), la ligne de commande de compilation pouvant elle même être générée à coup de sed ou de ce que tu veux.
    Ce que je veux dire c'est que ce n'est pas un paramètre de configuration tu es obligé de recompiler ton appli a chaque fois que tu veux changer ce paramètre.
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  7. #7
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    Ah oui après ça dépend du chemin Pour un chemin où t'installe une icône au moment de la compilation de ton appli, c'est clairement ce que tu veux. Pour un /home/blah/Musique c'est effectivemnet plus discutable.

  8. #8
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par teuf13 Voir le message
    Ah oui après ça dépend du chemin Pour un chemin où t'installe une icône au moment de la compilation de ton appli, c'est clairement ce que tu veux. Pour un /home/blah/Musique c'est effectivemnet plus discutable.
    Justement son chemin ne ressemble pas a un chemin standard type /usr/lib, ceci dit c'est peu etre un chemin par défaut pour sont appli et cela peu re changé après (auquel cas je peux eventuellement me taire) ...

    Mais même là je le mettrai en paramètre de configuration car on ne sais pas comment sera installé le système chez les autres.

    Apres c'est un peu plus long a developper mais c'est un choix qui peux impacter la portabilité.
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  9. #9
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    Pour un truc distribué sous forme de source, soit l'utilisateur le compile lui même, auquel cas tu peux hardcoder le bon chemin au moment de la compilation vu que tu sais où il sera utilisé, soit l'utilisateur l'obtient via un package qui s'installe dans un endroit fixe, donc pas besoin que ça soit paramètrable non plus.

  10. #10
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par teuf13 Voir le message
    Pour un truc distribué sous forme de source, soit l'utilisateur le compile lui même, auquel cas tu peux hardcoder le bon chemin au moment de la compilation vu que tu sais où il sera utilisé, soit l'utilisateur l'obtient via un package qui s'installe dans un endroit fixe, donc pas besoin que ça soit paramètrable non plus.
    pour un source pourquoi pas a condition que cela soit documenté, pour un binaire pas certain.

    On a eu pas mal de client qui nous on demandé que nos produits puissent être installé en dehors du chemin par défaut (ce que tu nomme endroit fixe), si cela lui arrive (je ne sais pas si il le fait dans un contexte pro ou amateur) il faut partir chasser ce genre de chaine pour les remplacer par un parametrage.


    par exemple si tu livre sous forme de rpm ce dernier peu etre relocatable
    http://www.cyberciti.biz/faq/rpm-relocatable-packages/
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    bah les solutions les plus simples sont

    • un paramètre de lancement (option du style -PATH=)
    • une variable d'environnement
    • un chemin relatif


    Eventuellement, avec le define, un "sed" bien placé (mais à l'installation).
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  12. #12
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    bah les solutions les plus simples sont

    • un paramètre de lancement (option du style -PATH=)
    • une variable d'environnement
    • un chemin relatif


    Eventuellement, avec le define, un "sed" bien placé (mais à l'installation).
    le path relatif est souvent le plus simple, tu définit l'arborescence de ton soft et tu considère que cela ne va pas bouger quelque soit l'endroit ou il est installé.

    c'est rigolo ce petit débat pour une queston bébéte au début
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  13. #13
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    en tous cas hardcoder un chemin me paraît plus qu'un dé-conseil, une erreur à éviter..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  14. #14
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    je crois que l'on est d'accord,

    techniquement c'est possible mais ce n'est pas souhaitable.
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  15. #15
    Nouveau membre du Club
    Profil pro
    Recette MOE/MOA
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Recette MOE/MOA

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Points : 36
    Points
    36
    Par défaut
    D'accord, d'accord. C'était pour un phase de test. Je retiens donc le conseil.
    Merci de ces informations.

Discussions similaires

  1. Indicer un tableau avec une chaine de caractères
    Par petdelascar dans le forum C
    Réponses: 10
    Dernier message: 08/11/2007, 14h55
  2. Réponses: 4
    Dernier message: 18/07/2007, 14h10
  3. Réponses: 8
    Dernier message: 06/05/2007, 21h47
  4. Réponses: 4
    Dernier message: 01/02/2007, 19h06
  5. Réponses: 5
    Dernier message: 26/07/2006, 11h13

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