Nice programing

extern 키워드는 무엇을 의미합니까?

nicepro 2020. 12. 30. 20:22
반응형

extern 키워드는 무엇을 의미합니까?


무엇을 않는 extern의미하는 키워드? 나는 함수 선언 앞에서 다음과 같은 것을 보았다.

extern void DoFoo ...

extern이름을 외부 링크 제공합니다 . 즉, 프로그램의 다른 번역 단위에서이 이름을 통해 개체 또는 함수에 액세스 할 수 있습니다. 함수의 경우 이것은 어떤 경우에도 기본 연결이므로 사용 (이 컨텍스트에서)은 일반적으로 중복됩니다.


extern 키워드는 변수 또는 함수를 선언하고 외부 연결이 있음을 지정합니다 (해당 이름은 정의 된 파일이 아닌 다른 파일에서 볼 수 있음). 변수를 수정할 때 extern은 변수가 정적 기간을 갖도록 지정합니다 (프로그램 시작시 할당되고 프로그램 종료시 할당 해제 됨). 변수 또는 함수는 다른 소스 파일 또는 나중에 동일한 파일에 정의 될 수 있습니다. 파일 범위의 변수 및 함수 선언은 기본적으로 외부입니다.

여기 에서 자세한 설명을 찾을 수 있습니다 .


초보자를 위해

처음에는 " extern 키워드가 변수 또는 함수를 선언하고 외부 연결이 있음을 지정합니다 " 라는 사실을 알고 혼란 스러웠습니다 . "@Romain Hippeau.

이제 extern 키워드를 통해 다른 클래스와 변수를 공유 할 수 있음을 이해했습니다.

예 : Notification.h

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

Notification.m

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

다른 클래스에서 notification.h를 가져 오면 NotificationConstant 문자열의 값을 읽을 수 있습니다.

extern 키워드가 없으면 For Notification 상수는 다음 오류를 생성합니다. 여기에 이미지 설명 입력

참조 URL : https://stackoverflow.com/questions/2753962/what-does-the-extern-keyword-mean

반응형