Подтвердить что ты не робот

Что означает ключевое слово extern?

Что означает ключевое слово extern? Я видел это перед объявлением функции, например

extern void DoFoo ...
4b9b3361

Ответ 1

extern дает внешнюю ссылку. Это означает, что объект или функция доступны через это имя из других единиц перевода в программе. Для функций это привязка по умолчанию в любом случае, поэтому его использование (в этом контексте) обычно является избыточным.

Ответ 2

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

Вы можете найти более полное описание здесь.

Ответ 3

Для начинающих,

Изначально я был смущен, узнав, что " ключевое слово extern объявляет переменную или функцию и указывает, что она имеет внешнюю привязку" от @Romain Hippeau.

Теперь я понял, что мы сможем делиться нашими переменными с другими классами с помощью ключевого слова extern.

Например: Notification.h

введите описание изображения здесь

Notification.m

введите описание изображения здесь

Без ключевого слова extern Для константы уведомлений будет создана следующая ошибка. введите описание изображения здесь