déclaration extern et de définition de la fonction à la fois dans le même fichier

Je viens de la navigation à travers gcc fichiers sources. Dans gcc.c, j'ai trouvé quelque chose comme

extern int main (int, char **);

int
main (int argc, char **argv)
{

Maintenant, mon doute est extern est-à-dire au compilateur que la fonction n'est pas dans ce fichier, mais qui va se trouver ailleurs dans le projet. Mais ici, la définition de main est, immédiatement après le extern déclaration. Ce but est le extern déclaration de servir alors?

Il semble que, dans cet exemple précis, extern semble se comporter comme export que nous utilisons dans l'assemblée, wherin nous exportation d'un symbole particulier à l'extérieur du module

Des idées?

OriginalL'auteur Pavan Manjunath | 2012-04-13