Я просто просматривал gcc
исходные файлы. В gcc.c
я нашел что-то вроде
extern int main (int, char **);
int
main (int argc, char **argv)
{
Теперь я сомневаюсь, что extern
должен сообщить компилятору, что конкретной функции нет в этом файле, но она будет найдена где-то еще в проекте. Но здесь определение main
находится сразу после объявления extern
. Какой же цели служит декларация extern
?
Похоже, что в этом конкретном примере extern
ведет себя как export
, который мы используем в ассемблере, где мы экспортируем определенный символ за пределы модуля.
Есть идеи?