2011-08-11 5 views
3


Je développe une application dans C. Je veux utiliser une fonction locale avec le même nom dans plus d'un fichier source. Permettez-moi de simplifier la question:Définition multiple d'erreur de liaison dans C

Dans hell.c

void myLocalFunc(){ printf("Hello hell\r\n"); } 

Dans world.c

void myLocalFunc(){ printf("Hello world\r\n"); } 

Parce qu'ils sont des fonctions locales que, je ne les déclarer dans les fichiers d'en-tête. Mais quand je compile le projet, il me donne le message d'erreur "Définition multiple de 'myLocalFunc'" et aussi celui-ci: "Définition multiple de 'myLocalFunc' (d'abord défini ici)".

Quelle est mon erreur ici?

Répondre

8

Remplacez-le par

static void myLocalFunc(){ printf("Hello world\r\n"); } 

Ou, si vous utilisez C++, vous pouvez également utiliser un espace de noms anonymes comme ceci:

namespace { 
void myLocalFunc(){ printf("Hello world\r\n"); } 
} 
+0

C'est la bonne réponse et une aide réelle urgence. Je vous remercie. – Fer

Questions connexes