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



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



extern void DoFoo ...
580   3  

3 ответов:

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

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

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

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

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

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

Например: Уведомление.h

 #import <Foundation/Foundation.h>
 extern const NSString* notificationConstant;

уведомления.м

 #import "Notification.h"
 const NSString* notificationConstant = @"NotificationConstant";

импортировать уведомления.ч в любом из моих других классы, я могу прочитать значение строки NotificationConstant.

без ключевого слова extern для константы уведомления создаст следующую ошибку. enter image description here

Comments

    Ничего не найдено.