Bonjour,
J'aimerais savoir s'il y a une pratique recommandée de l'utilisation
des #include dans le cadre d'un logiciel avec plusieurs fichiers .c
(cas classique) et devant tourner sur de multiples plateformes (si
bien que tester la compilation sur une machine avant un commit ne
suffit pas toujours à détecter les erreurs). La solution actuellement
choisie dans notre logiciel: mettre les #include nécessaires au début
de chaque fichier .c, suivant les fonctions et macros utilisées par
le fichier .c en question.
Le problème qui s'est posé: j'ai déplacé une fonction d'un fichier .c
à un autre, mais j'ai oublié de mettre à jour les #include (je signale
qu'indépendamment d'autres choix qui ont pu être faits, ce genre
d'erreur ne se voit pas toujours à la compilation dans la pratique).
Comme chaque fichier .c inclut un fichier d'en-tête global au projet,
je pense à la solution alternative de mettre tous les #include dans ce
fichier d'en-tête. Qu'en pensez-vous?
D'autre part, certains en-têtes standard sont inclus conditionnellement
suivant la valeur de certaines macros (définies ou non en fonction des
options du "configure"), ce qui peut cacher des erreurs qui dépendent
du choix de ces options. Une inclusion conditionnelle est tout à fait
logique dans le cas d'un en-tête non standard (puisque justement,
l'en-tête peut ne pas exister sur certaines plateformes), mais dans
le cas d'un en-tête standard, cela me semble finalement une source
d'erreur. Vaut-il mieux éviter ces inclusions conditionnelles?
Bonjour,
J'aimerais savoir s'il y a une pratique recommandée de l'utilisation
des #include dans le cadre d'un logiciel avec plusieurs fichiers .c
(cas classique) et devant tourner sur de multiples plateformes (si
bien que tester la compilation sur une machine avant un commit ne
suffit pas toujours à détecter les erreurs). La solution actuellement
choisie dans notre logiciel: mettre les #include nécessaires au début
de chaque fichier .c, suivant les fonctions et macros utilisées par
le fichier .c en question.
Le problème qui s'est posé: j'ai déplacé une fonction d'un fichier .c
à un autre, mais j'ai oublié de mettre à jour les #include (je signale
qu'indépendamment d'autres choix qui ont pu être faits, ce genre
d'erreur ne se voit pas toujours à la compilation dans la pratique).
Comme chaque fichier .c inclut un fichier d'en-tête global au projet,
je pense à la solution alternative de mettre tous les #include dans ce
fichier d'en-tête. Qu'en pensez-vous?
D'autre part, certains en-têtes standard sont inclus conditionnellement
suivant la valeur de certaines macros (définies ou non en fonction des
options du "configure"), ce qui peut cacher des erreurs qui dépendent
du choix de ces options. Une inclusion conditionnelle est tout à fait
logique dans le cas d'un en-tête non standard (puisque justement,
l'en-tête peut ne pas exister sur certaines plateformes), mais dans
le cas d'un en-tête standard, cela me semble finalement une source
d'erreur. Vaut-il mieux éviter ces inclusions conditionnelles?
Bonjour,
J'aimerais savoir s'il y a une pratique recommandée de l'utilisation
des #include dans le cadre d'un logiciel avec plusieurs fichiers .c
(cas classique) et devant tourner sur de multiples plateformes (si
bien que tester la compilation sur une machine avant un commit ne
suffit pas toujours à détecter les erreurs). La solution actuellement
choisie dans notre logiciel: mettre les #include nécessaires au début
de chaque fichier .c, suivant les fonctions et macros utilisées par
le fichier .c en question.
Le problème qui s'est posé: j'ai déplacé une fonction d'un fichier .c
à un autre, mais j'ai oublié de mettre à jour les #include (je signale
qu'indépendamment d'autres choix qui ont pu être faits, ce genre
d'erreur ne se voit pas toujours à la compilation dans la pratique).
Comme chaque fichier .c inclut un fichier d'en-tête global au projet,
je pense à la solution alternative de mettre tous les #include dans ce
fichier d'en-tête. Qu'en pensez-vous?
D'autre part, certains en-têtes standard sont inclus conditionnellement
suivant la valeur de certaines macros (définies ou non en fonction des
options du "configure"), ce qui peut cacher des erreurs qui dépendent
du choix de ces options. Une inclusion conditionnelle est tout à fait
logique dans le cas d'un en-tête non standard (puisque justement,
l'en-tête peut ne pas exister sur certaines plateformes), mais dans
le cas d'un en-tête standard, cela me semble finalement une source
d'erreur. Vaut-il mieux éviter ces inclusions conditionnelles?
Bonjour,
J'aimerais savoir s'il y a une pratique recommandée de l'utilisation
des #include dans le cadre d'un logiciel avec plusieurs fichiers .c
(cas classique) et devant tourner sur de multiples plateformes (si
bien que tester la compilation sur une machine avant un commit ne
suffit pas toujours à détecter les erreurs). La solution actuellement
choisie dans notre logiciel: mettre les #include nécessaires au début
de chaque fichier .c, suivant les fonctions et macros utilisées par
le fichier .c en question.
Le problème qui s'est posé: j'ai déplacé une fonction d'un fichier .c
à un autre, mais j'ai oublié de mettre à jour les #include (je signale
qu'indépendamment d'autres choix qui ont pu être faits, ce genre
d'erreur ne se voit pas toujours à la compilation dans la pratique).
Comme chaque fichier .c inclut un fichier d'en-tête global au projet,
je pense à la solution alternative de mettre tous les #include dans ce
fichier d'en-tête. Qu'en pensez-vous?
D'autre part, certains en-têtes standard sont inclus conditionnellement
suivant la valeur de certaines macros (définies ou non en fonction des
options du "configure"), ce qui peut cacher des erreurs qui dépendent
du choix de ces options. Une inclusion conditionnelle est tout à fait
logique dans le cas d'un en-tête non standard (puisque justement,
l'en-tête peut ne pas exister sur certaines plateformes), mais dans
le cas d'un en-tête standard, cela me semble finalement une source
d'erreur. Vaut-il mieux éviter ces inclusions conditionnelles?
Bonjour,
J'aimerais savoir s'il y a une pratique recommandée de l'utilisation
des #include dans le cadre d'un logiciel avec plusieurs fichiers .c
(cas classique) et devant tourner sur de multiples plateformes (si
bien que tester la compilation sur une machine avant un commit ne
suffit pas toujours à détecter les erreurs). La solution actuellement
choisie dans notre logiciel: mettre les #include nécessaires au début
de chaque fichier .c, suivant les fonctions et macros utilisées par
le fichier .c en question.
Le problème qui s'est posé: j'ai déplacé une fonction d'un fichier .c
à un autre, mais j'ai oublié de mettre à jour les #include (je signale
qu'indépendamment d'autres choix qui ont pu être faits, ce genre
d'erreur ne se voit pas toujours à la compilation dans la pratique).
Comme chaque fichier .c inclut un fichier d'en-tête global au projet,
je pense à la solution alternative de mettre tous les #include dans ce
fichier d'en-tête. Qu'en pensez-vous?
D'autre part, certains en-têtes standard sont inclus conditionnellement
suivant la valeur de certaines macros (définies ou non en fonction des
options du "configure"), ce qui peut cacher des erreurs qui dépendent
du choix de ces options. Une inclusion conditionnelle est tout à fait
logique dans le cas d'un en-tête non standard (puisque justement,
l'en-tête peut ne pas exister sur certaines plateformes), mais dans
le cas d'un en-tête standard, cela me semble finalement une source
d'erreur. Vaut-il mieux éviter ces inclusions conditionnelles?
Bonjour,
J'aimerais savoir s'il y a une pratique recommandée de l'utilisation
des #include dans le cadre d'un logiciel avec plusieurs fichiers .c
(cas classique) et devant tourner sur de multiples plateformes (si
bien que tester la compilation sur une machine avant un commit ne
suffit pas toujours à détecter les erreurs). La solution actuellement
choisie dans notre logiciel: mettre les #include nécessaires au début
de chaque fichier .c, suivant les fonctions et macros utilisées par
le fichier .c en question.
Le problème qui s'est posé: j'ai déplacé une fonction d'un fichier .c
à un autre, mais j'ai oublié de mettre à jour les #include (je signale
qu'indépendamment d'autres choix qui ont pu être faits, ce genre
d'erreur ne se voit pas toujours à la compilation dans la pratique).
Comme chaque fichier .c inclut un fichier d'en-tête global au projet,
je pense à la solution alternative de mettre tous les #include dans ce
fichier d'en-tête. Qu'en pensez-vous?
D'autre part, certains en-têtes standard sont inclus conditionnellement
suivant la valeur de certaines macros (définies ou non en fonction des
options du "configure"), ce qui peut cacher des erreurs qui dépendent
du choix de ces options. Une inclusion conditionnelle est tout à fait
logique dans le cas d'un en-tête non standard (puisque justement,
l'en-tête peut ne pas exister sur certaines plateformes), mais dans
le cas d'un en-tête standard, cela me semble finalement une source
d'erreur. Vaut-il mieux éviter ces inclusions conditionnelles?
Bonjour,
J'aimerais savoir s'il y a une pratique recommandée de l'utilisation
des #include dans le cadre d'un logiciel avec plusieurs fichiers .c
(cas classique) et devant tourner sur de multiples plateformes (si
bien que tester la compilation sur une machine avant un commit ne
suffit pas toujours à détecter les erreurs). La solution actuellement
choisie dans notre logiciel: mettre les #include nécessaires au début
de chaque fichier .c, suivant les fonctions et macros utilisées par
le fichier .c en question.
Le problème qui s'est posé: j'ai déplacé une fonction d'un fichier .c
à un autre, mais j'ai oublié de mettre à jour les #include (je signale
qu'indépendamment d'autres choix qui ont pu être faits, ce genre
d'erreur ne se voit pas toujours à la compilation dans la pratique).
Comme chaque fichier .c inclut un fichier d'en-tête global au projet,
je pense à la solution alternative de mettre tous les #include dans ce
fichier d'en-tête. Qu'en pensez-vous?
D'autre part, certains en-têtes standard sont inclus conditionnellement
suivant la valeur de certaines macros (définies ou non en fonction des
options du "configure"), ce qui peut cacher des erreurs qui dépendent
du choix de ces options. Une inclusion conditionnelle est tout à fait
logique dans le cas d'un en-tête non standard (puisque justement,
l'en-tête peut ne pas exister sur certaines plateformes), mais dans
le cas d'un en-tête standard, cela me semble finalement une source
d'erreur. Vaut-il mieux éviter ces inclusions conditionnelles?
Bonjour,
J'aimerais savoir s'il y a une pratique recommandée de l'utilisation
des #include dans le cadre d'un logiciel avec plusieurs fichiers .c
(cas classique) et devant tourner sur de multiples plateformes (si
bien que tester la compilation sur une machine avant un commit ne
suffit pas toujours à détecter les erreurs). La solution actuellement
choisie dans notre logiciel: mettre les #include nécessaires au début
de chaque fichier .c, suivant les fonctions et macros utilisées par
le fichier .c en question.
Le problème qui s'est posé: j'ai déplacé une fonction d'un fichier .c
à un autre, mais j'ai oublié de mettre à jour les #include (je signale
qu'indépendamment d'autres choix qui ont pu être faits, ce genre
d'erreur ne se voit pas toujours à la compilation dans la pratique).
Comme chaque fichier .c inclut un fichier d'en-tête global au projet,
je pense à la solution alternative de mettre tous les #include dans ce
fichier d'en-tête. Qu'en pensez-vous?
D'autre part, certains en-têtes standard sont inclus conditionnellement
suivant la valeur de certaines macros (définies ou non en fonction des
options du "configure"), ce qui peut cacher des erreurs qui dépendent
du choix de ces options. Une inclusion conditionnelle est tout à fait
logique dans le cas d'un en-tête non standard (puisque justement,
l'en-tête peut ne pas exister sur certaines plateformes), mais dans
le cas d'un en-tête standard, cela me semble finalement une source
d'erreur. Vaut-il mieux éviter ces inclusions conditionnelles?
Bonjour,
J'aimerais savoir s'il y a une pratique recommandée de l'utilisation
des #include dans le cadre d'un logiciel avec plusieurs fichiers .c
(cas classique) et devant tourner sur de multiples plateformes (si
bien que tester la compilation sur une machine avant un commit ne
suffit pas toujours à détecter les erreurs). La solution actuellement
choisie dans notre logiciel: mettre les #include nécessaires au début
de chaque fichier .c, suivant les fonctions et macros utilisées par
le fichier .c en question.
Le problème qui s'est posé: j'ai déplacé une fonction d'un fichier .c
à un autre, mais j'ai oublié de mettre à jour les #include (je signale
qu'indépendamment d'autres choix qui ont pu être faits, ce genre
d'erreur ne se voit pas toujours à la compilation dans la pratique).
Comme chaque fichier .c inclut un fichier d'en-tête global au projet,
je pense à la solution alternative de mettre tous les #include dans ce
fichier d'en-tête. Qu'en pensez-vous?
D'autre part, certains en-têtes standard sont inclus conditionnellement
suivant la valeur de certaines macros (définies ou non en fonction des
options du "configure"), ce qui peut cacher des erreurs qui dépendent
du choix de ces options. Une inclusion conditionnelle est tout à fait
logique dans le cas d'un en-tête non standard (puisque justement,
l'en-tête peut ne pas exister sur certaines plateformes), mais dans
le cas d'un en-tête standard, cela me semble finalement une source
d'erreur. Vaut-il mieux éviter ces inclusions conditionnelles?
Contrairement à d'autres ici, je suis d'avis de mettre tout ce qui est
spécifique à la plateforme et aux options de générations dans un même
fichier, disons config.h et un
#include "config.h"
dans le fichier d'en-tête global inclu dans tous les .c
Contrairement à d'autres ici, je suis d'avis de mettre tout ce qui est
spécifique à la plateforme et aux options de générations dans un même
fichier, disons config.h et un
#include "config.h"
dans le fichier d'en-tête global inclu dans tous les .c
Contrairement à d'autres ici, je suis d'avis de mettre tout ce qui est
spécifique à la plateforme et aux options de générations dans un même
fichier, disons config.h et un
#include "config.h"
dans le fichier d'en-tête global inclu dans tous les .c
Vincent Lefevre wrote:Le problème qui s'est posé: j'ai déplacé une fonction d'un fichier .c
à un autre, mais j'ai oublié de mettre à jour les #include (je signale
qu'indépendamment d'autres choix qui ont pu être faits, ce genre
d'erreur ne se voit pas toujours à la compilation dans la pratique).
Comme chaque fichier .c inclut un fichier d'en-tête global au projet,
je pense à la solution alternative de mettre tous les #include dans ce
fichier d'en-tête. Qu'en pensez-vous?
Contrairement à d'autres ici, je suis d'avis de mettre tout ce qui est
spécifique à la plateforme et aux options de générations dans un même
fichier, disons config.h et un
#include "config.h"
dans le fichier d'en-tête global inclu dans tous les .c
Vincent Lefevre wrote:
Le problème qui s'est posé: j'ai déplacé une fonction d'un fichier .c
à un autre, mais j'ai oublié de mettre à jour les #include (je signale
qu'indépendamment d'autres choix qui ont pu être faits, ce genre
d'erreur ne se voit pas toujours à la compilation dans la pratique).
Comme chaque fichier .c inclut un fichier d'en-tête global au projet,
je pense à la solution alternative de mettre tous les #include dans ce
fichier d'en-tête. Qu'en pensez-vous?
Contrairement à d'autres ici, je suis d'avis de mettre tout ce qui est
spécifique à la plateforme et aux options de générations dans un même
fichier, disons config.h et un
#include "config.h"
dans le fichier d'en-tête global inclu dans tous les .c
Vincent Lefevre wrote:Le problème qui s'est posé: j'ai déplacé une fonction d'un fichier .c
à un autre, mais j'ai oublié de mettre à jour les #include (je signale
qu'indépendamment d'autres choix qui ont pu être faits, ce genre
d'erreur ne se voit pas toujours à la compilation dans la pratique).
Comme chaque fichier .c inclut un fichier d'en-tête global au projet,
je pense à la solution alternative de mettre tous les #include dans ce
fichier d'en-tête. Qu'en pensez-vous?
Contrairement à d'autres ici, je suis d'avis de mettre tout ce qui est
spécifique à la plateforme et aux options de générations dans un même
fichier, disons config.h et un
#include "config.h"
dans le fichier d'en-tête global inclu dans tous les .c
Ça dépend de la taille du logiciel.
Si c'est un petit programme où ça ne dérange pas de recompiler tous
les sources à la moindre modification, on peut trés bien faire un
fichier tout.h et l'inclure partout.
À charge au programmeur de bien modifier les sources quand il déplace
des fonctions. man grep!
Ça dépend de la taille du logiciel.
Si c'est un petit programme où ça ne dérange pas de recompiler tous
les sources à la moindre modification, on peut trés bien faire un
fichier tout.h et l'inclure partout.
À charge au programmeur de bien modifier les sources quand il déplace
des fonctions. man grep!
Ça dépend de la taille du logiciel.
Si c'est un petit programme où ça ne dérange pas de recompiler tous
les sources à la moindre modification, on peut trés bien faire un
fichier tout.h et l'inclure partout.
À charge au programmeur de bien modifier les sources quand il déplace
des fonctions. man grep!
Beaucoup de mal. Ca se termine vite en sac de noeud cote portabilite.
Si tu as un fichier d'entetes `fourre-tout', tu es plus ou moins oblige
de l'inclure dans tous les cas de figure. Si celui-ci entre en collision
avec des choses existant sur un systeme donne, ca devient complexe a
corriger, parce que c'est une grosse operation globale. Alors que faire
de la micro-chirurgie sur un fichier d'entete pas inclus par tout le monde,
c'est souvent plus facile.
Pour ce qui est de la mise-a-jour des includes, ca doit pas etre tres
complique de mettre en place un bout de script qui verifie que les choses
sont faites comme tu veux... je sais pas moi, un bete nm sur les fichiers
objets assorti d'un grep sur le fichier d'entete qui devrait contenir leur
prototype ?
Ca depend de la facon dont l'inclusion conditionnelle est pratiquee,
et ca depend de ce qu'on va chercher dans l'entete standard. Si
c'est systematique et pour tous les entetes, c'est nocif. Si c'est
pour des fonctionnalites C99, ca peut valoir le coup, et ca peut
sans doute se mettre out-of-line dans les cas tordus.... je pense
typiquement a stdint.h et cie.
Beaucoup de mal. Ca se termine vite en sac de noeud cote portabilite.
Si tu as un fichier d'entetes `fourre-tout', tu es plus ou moins oblige
de l'inclure dans tous les cas de figure. Si celui-ci entre en collision
avec des choses existant sur un systeme donne, ca devient complexe a
corriger, parce que c'est une grosse operation globale. Alors que faire
de la micro-chirurgie sur un fichier d'entete pas inclus par tout le monde,
c'est souvent plus facile.
Pour ce qui est de la mise-a-jour des includes, ca doit pas etre tres
complique de mettre en place un bout de script qui verifie que les choses
sont faites comme tu veux... je sais pas moi, un bete nm sur les fichiers
objets assorti d'un grep sur le fichier d'entete qui devrait contenir leur
prototype ?
Ca depend de la facon dont l'inclusion conditionnelle est pratiquee,
et ca depend de ce qu'on va chercher dans l'entete standard. Si
c'est systematique et pour tous les entetes, c'est nocif. Si c'est
pour des fonctionnalites C99, ca peut valoir le coup, et ca peut
sans doute se mettre out-of-line dans les cas tordus.... je pense
typiquement a stdint.h et cie.
Beaucoup de mal. Ca se termine vite en sac de noeud cote portabilite.
Si tu as un fichier d'entetes `fourre-tout', tu es plus ou moins oblige
de l'inclure dans tous les cas de figure. Si celui-ci entre en collision
avec des choses existant sur un systeme donne, ca devient complexe a
corriger, parce que c'est une grosse operation globale. Alors que faire
de la micro-chirurgie sur un fichier d'entete pas inclus par tout le monde,
c'est souvent plus facile.
Pour ce qui est de la mise-a-jour des includes, ca doit pas etre tres
complique de mettre en place un bout de script qui verifie que les choses
sont faites comme tu veux... je sais pas moi, un bete nm sur les fichiers
objets assorti d'un grep sur le fichier d'entete qui devrait contenir leur
prototype ?
Ca depend de la facon dont l'inclusion conditionnelle est pratiquee,
et ca depend de ce qu'on va chercher dans l'entete standard. Si
c'est systematique et pour tous les entetes, c'est nocif. Si c'est
pour des fonctionnalites C99, ca peut valoir le coup, et ca peut
sans doute se mettre out-of-line dans les cas tordus.... je pense
typiquement a stdint.h et cie.
Si le projet utilise gcc,
-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations
devraient eviter les problemes.
Si le projet utilise gcc,
-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations
devraient eviter les problemes.
Si le projet utilise gcc,
-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations
devraient eviter les problemes.
Dans l'article <f6fidf$mt5$,
Marc Espie écrit:Beaucoup de mal. Ca se termine vite en sac de noeud cote portabilite.
Si tu as un fichier d'entetes `fourre-tout', tu es plus ou moins oblige
de l'inclure dans tous les cas de figure. Si celui-ci entre en collision
avec des choses existant sur un systeme donne, ca devient complexe a
corriger, parce que c'est une grosse operation globale. Alors que faire
de la micro-chirurgie sur un fichier d'entete pas inclus par tout le monde,
c'est souvent plus facile.
Enfin, une bibliothèque ne devrait pas avoir de conflit avec les
en-têtes standard[*], sinon elle est bien buggée.
[*] Je pense essentiellement aux en-têtes standard, puisque ce sont
ceux qui posent le plus de problèmes en pratique: quand on utilise
certaines macros ou fonctions, on ne pense pas forcément à une
dépendance particulière (c'est le cas de NULL en particulier, qui
n'a a priori rien à voir avec une notion de bibliothèque).
Dans l'article <f6fidf$mt5$1@biggoron.nerim.net>,
Marc Espie <espie@lain.home> écrit:
Beaucoup de mal. Ca se termine vite en sac de noeud cote portabilite.
Si tu as un fichier d'entetes `fourre-tout', tu es plus ou moins oblige
de l'inclure dans tous les cas de figure. Si celui-ci entre en collision
avec des choses existant sur un systeme donne, ca devient complexe a
corriger, parce que c'est une grosse operation globale. Alors que faire
de la micro-chirurgie sur un fichier d'entete pas inclus par tout le monde,
c'est souvent plus facile.
Enfin, une bibliothèque ne devrait pas avoir de conflit avec les
en-têtes standard[*], sinon elle est bien buggée.
[*] Je pense essentiellement aux en-têtes standard, puisque ce sont
ceux qui posent le plus de problèmes en pratique: quand on utilise
certaines macros ou fonctions, on ne pense pas forcément à une
dépendance particulière (c'est le cas de NULL en particulier, qui
n'a a priori rien à voir avec une notion de bibliothèque).
Dans l'article <f6fidf$mt5$,
Marc Espie écrit:Beaucoup de mal. Ca se termine vite en sac de noeud cote portabilite.
Si tu as un fichier d'entetes `fourre-tout', tu es plus ou moins oblige
de l'inclure dans tous les cas de figure. Si celui-ci entre en collision
avec des choses existant sur un systeme donne, ca devient complexe a
corriger, parce que c'est une grosse operation globale. Alors que faire
de la micro-chirurgie sur un fichier d'entete pas inclus par tout le monde,
c'est souvent plus facile.
Enfin, une bibliothèque ne devrait pas avoir de conflit avec les
en-têtes standard[*], sinon elle est bien buggée.
[*] Je pense essentiellement aux en-têtes standard, puisque ce sont
ceux qui posent le plus de problèmes en pratique: quand on utilise
certaines macros ou fonctions, on ne pense pas forcément à une
dépendance particulière (c'est le cas de NULL en particulier, qui
n'a a priori rien à voir avec une notion de bibliothèque).
Deux contraintes a prendre en compte:
- les entetes standards ne le sont pas toujours autant qu'on le voudrait.
J'ai vu pas mal de systeme ou il faut rajouter des incantations comme
#define _XOPEN_SOURCE pour avoir certaines des fonctions que l'on voudrait,
et ou on se retrouve generalement avec des fonctions que l'on ne voudrait
pas... bonjour les collisions.
- on n'utilise rarement une bibliotheque toute seule... si elle envahit
plus que le strict minimum de l'espace de noms global, alors il est a peu
pres certain que tot ou tard, deux bibliotheques vont se marcher sur les
pieds... particulierement pour les typedef et les struct. La solution serait
peut-etre de tout prefixer d'un mpfr_ ou equivalent, mais c'est un peu
lourd.
Deux contraintes a prendre en compte:
- les entetes standards ne le sont pas toujours autant qu'on le voudrait.
J'ai vu pas mal de systeme ou il faut rajouter des incantations comme
#define _XOPEN_SOURCE pour avoir certaines des fonctions que l'on voudrait,
et ou on se retrouve generalement avec des fonctions que l'on ne voudrait
pas... bonjour les collisions.
- on n'utilise rarement une bibliotheque toute seule... si elle envahit
plus que le strict minimum de l'espace de noms global, alors il est a peu
pres certain que tot ou tard, deux bibliotheques vont se marcher sur les
pieds... particulierement pour les typedef et les struct. La solution serait
peut-etre de tout prefixer d'un mpfr_ ou equivalent, mais c'est un peu
lourd.
Deux contraintes a prendre en compte:
- les entetes standards ne le sont pas toujours autant qu'on le voudrait.
J'ai vu pas mal de systeme ou il faut rajouter des incantations comme
#define _XOPEN_SOURCE pour avoir certaines des fonctions que l'on voudrait,
et ou on se retrouve generalement avec des fonctions que l'on ne voudrait
pas... bonjour les collisions.
- on n'utilise rarement une bibliotheque toute seule... si elle envahit
plus que le strict minimum de l'espace de noms global, alors il est a peu
pres certain que tot ou tard, deux bibliotheques vont se marcher sur les
pieds... particulierement pour les typedef et les struct. La solution serait
peut-etre de tout prefixer d'un mpfr_ ou equivalent, mais c'est un peu
lourd.