Forum Programmation.c++ config.h

Posté par  (site web personnel) .
Étiquettes : aucune
0
12
nov.
2005
Salut

il y a quelque chose que je vois souvent... que j'utilise de temps en temps... mais que je ne comprend que partiellement.

Je veux parler du fichier "config.h". Quelle est son utilité dans les projets ? Je sais qu'il est créé par le script ./configure et qu'il contient certaines commandes de pré-compilation mais à part ça... je ne vois vraiment pas ce qu'il peut bien contenir pour être aussi important. Quel genre de commande contient-il ? Et si je ne l'inclus pas, qu'est-ce que je risque de perdre ?

De plus, je programme en C++, a-t-il autant d'importance que pour le C ?

merci pour votre précieuse aide :-)
@+
  • # Utilité de config.h

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

    config.h contient en fait un certain nombre de définitions de constantes du genre PACKAGE, VERSION et des directives de précompilations du type HAVE_LOCALE_H.
    Cela permet dans le code source des choses du style :
    #ifdef HAVE_LOCALE_H
    # include <locale.h>
    ... // du code dépendant de locale.h
    #endif

    Certains projets particulièrement simples n'en auront jamais besoin. Pour d'autres c'est une nécessité absolue, et il est sage d'inclure config.h en premier dans chaque fichier source C ou C++ (mais pas dans les fichiers d'en-têtes). C'ets aussi important en C qu'en C++ et ce qui permet de faire des projets portables.
    • [^] # Re: Utilité de config.h

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

      Cela devient moins vrai en C++ je trouve.

      On dispose de plus de bibliothèques portables (boost, QT, wxWidget, ACE, ...) qui font abstraction de ces détails. Ou plus exactement les encapsulent vu que certaines utilisent exactement le même mécanisme en interne, ou des mécanismes alternatifs. Ce qui fait que l'on ne va plus passer directement par le résultat des auto-tools, mais par ces bibliothèques portables.

Suivre le flux des commentaires

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