Что означает ключевое слово extern? Я видел это перед объявлением функции, например
extern void DoFoo ...
Ответ 1
extern дает внешнюю ссылку. Это означает, что объект или функция доступны через это имя из других единиц перевода в программе. Для функций это привязка по умолчанию в любом случае, поэтому его использование (в этом контексте) обычно является избыточным.
Ответ 2
Ключевое слово extern объявляет переменную или функцию и указывает, что она имеет внешнюю привязку (ее имя видно из файлов, отличных от тех, в которых оно определено). При изменении переменной extern указывает, что переменная имеет статическую продолжительность (она выделяется, когда программа начинается и освобождается, когда программа заканчивается). Переменная или функция могут быть определены в другом исходном файле или позже в том же файле. Объявления переменных и функций в области файлов по умолчанию являются внешними.
Изначально я был смущен, узнав, что " ключевое слово extern объявляет переменную или функцию и указывает, что она имеет внешнюю привязку" от @Romain Hippeau.
Теперь я понял, что мы сможем делиться нашими переменными с другими классами с помощью ключевого слова extern.
Например:
Notification.h
Notification.m
Без ключевого слова extern Для константы уведомлений будет создана следующая ошибка.