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