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