объявление extern и определение функции в одном файле

Я просто просматривал gccисходные файлы. В gcc.cя нашел что-то вроде

extern int main (int, char **);

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

Теперь я сомневаюсь, что externдолжен сообщить компилятору, что конкретной функции нет в этом файле, но она будет найдена где-то еще в проекте. Но здесь определение mainнаходится сразу после объявления extern. Какой же цели служит декларация extern?

Похоже, что в этом конкретном примере externведет себя как export, который мы используем в ассемблере, где мы экспортируем определенный символ за пределы модуля.

Есть идеи?

11
задан Pavan Manjunath 13 April 2012 в 07:46
поделиться