conflit de noms ? - C - Programmation
Marsh Posté le 10-08-2004 à 14:53:56
met en static quand tu peux
[edit] j'ai rien dit
Marsh Posté le 10-08-2004 à 14:55:56
en static => la fonction est local, et n'est donc pas visible de l'exterieur de l'unité de compilation, donc le linker peut prendre 2 fonctions static du meme nom dans 2 unités de compilation différentes c bien ca ?
Marsh Posté le 10-08-2004 à 15:07:06
BlackGoddess a écrit : en static => la fonction est local, et n'est donc pas visible de l'exterieur de l'unité de compilation, donc le linker peut prendre 2 fonctions static du meme nom dans 2 unités de compilation différentes c bien ca ? |
En static le linker ne vera jamais me symbole de la fonction donc tout devrait aller.
Marsh Posté le 10-08-2004 à 15:10:32
je peux pas me permettre de tout mettre en statique, en effet des fonctions sont utilisées dans plusieurs fichiers
sinon, je pensais peut-etre a un autre moyen (je ne sais pas si c'est possible)
compiler une partie du projet en librairie statique, cette librairie n'exportant que certaines fonctions
puis lier cette librairie au reste du projet ?
je sais que c'est possible sous windows, mais la je suis avec gcc sous linux, est-ce egalement possible ? si oui, ou je pourrait trouver de la doc la dessus ?
Marsh Posté le 11-08-2004 à 00:15:41
Pacool pour la maintenance et pour la lisibilité ... !
Tu mets en static ce qui est local à un seul fichier
pas la peine de mettre tout static dans chaque fichier.
ex : si une fonction est utilisée dans plusieurs fichiers, tu ne la déclares pas static. Si une autre fonction à le même nom, si elle est locale à son fichier, ça marchera si tu déclares cette dernière static.
Après si tu as deux fonctions non locales qui ont le même nom, ben ya pas de solution simple.
Sauf les renommer (et ça serait mieux pour la lisibilité de ton code...)
Marsh Posté le 11-08-2004 à 00:45:01
oui oui la solution static était déjà épuisée ...
donc je me suis lancé dans le renommage de fonction.
Marsh Posté le 10-08-2004 à 14:52:47
Bonjour,
je dois dans un meme programme reprendre des bouts de code de sources differentes. seulement voila, je me retrouve avec des conflits de nom.
En c++, j'aurais utilisé des namespaces, mais ca n'existe apparement pas en C.
qq1 aurait une idée pour contourner le problème ?
(a part renommer toutes les fonctions/variables en conflit)
---------------
-( BlackGoddess )-