Почему он компилируется независимо от того, используется "extern"? - PullRequest
1 голос
/ 30 ноября 2010

В a.cpp:

int t()
{
  //definition goes here
  ...
}

b.cpp:

#include "a.h"

int main()
{
  t();
}

наконец, ах:

extern int t();
//int t();

Обе формы ах работает, почему?

1 Ответ

9 голосов
/ 30 ноября 2010

Поскольку функция по умолчанию является внешней, поэтому ключевое слово extern является избыточным.Некоторым людям нравится явно добавлять extern, когда они хотят намекнуть другим разработчикам, что определение функции не должно быть найдено в файле .cpp с тем же именем, что и этот файл .h, затем они добавляюткомментарий к точке, где функция объявлена.Но, с точки зрения компилятора, это ни на что не влияет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...