어떻게 목표 변수 C에서 변수를 전역 적으로 선언 할 수 있습니까?h 파일의 변수를 선언하려고하면 오류가 표시됩니다. 링커 명령이 종료 코드 -1로 실패했습니다.
extern int GlobalInt;
통근 부 : 나 H 파일에 변수를 선언 할 때 그것은
링커 명령이 종료 코드 -1
어떻게 목표 변수 C에서 변수를 전역 적으로 선언 할 수 있습니까?h 파일의 변수를 선언하려고하면 오류가 표시됩니다. 링커 명령이 종료 코드 -1로 실패했습니다.
extern int GlobalInt;
통근 부 : 나 H 파일에 변수를 선언 할 때 그것은
링커 명령이 종료 코드 -1
로 실패 오류를 선언과 같은 글로벌 변수 도시 컴파일러에게 이것이 GlobalInt로 식별되는 int 유형의 개체가 존재한다는 선언임을 알립니다. 나중에 정의 될 수도 있고 그렇지 않을 수도 있습니다 (링커의 작업임을 보장하는 것은 컴파일러의 책임이 아닙니다). 이 점에있어서 함수 프로토 타입과 유사합니다. 헤더가 존재 말한다 때문에 지금
int GlobalInt = 4;
, GlobalInt에 액세스 할 수 있습니다 헤더를 포함 각 파일, 그래서 컴파일러는 행복하다 :
은 소스 파일 중 하나에서, 당신은 GlobalInt 정수를 정의 링커가 소스 파일 중 하나에서이 파일을 볼 수 있으므로 너무 행복 할 것입니다. 그냥 두 번 정의하지 마라.
헤더 파일의 경우 변수를 extern
으로 선언하십시오. 하나의 실행 파일 (.c
또는 .m
)에서
extern NSInteger myGlobalInteger;
는 정상 선언.
NSInteger myGlobalInteger;
머리글에 extern
을두면
변수를 헤더에 extern
으로 선언하면 컴파일러에 어딘가에 주어진 유형의 변수가 있다는 것을 알립니다. 실제로 정의 된 부분에 대해서는 걱정하지 않습니다. 링크시 링커는 실제 선언에 대한 모든 참조를보고 참조를 수정합니다.
.m 파일에도 해당 변수를 정의하십시오. 예를 들어 아래 찾아주세요 :
extern NSInteger MYGlobalVariable;
그런 다음에 넣고 : 응용 프로그램을 종료하고 다시 시작할 때 표준 글로벌 변수의
을 지속적이지, 당신의 선택의 헤더 파일 (*.h
)이 추가 구현 파일 (*.m
, *.c
, *.cpp
가) : 당신이 빵과 버터 전역 변수를 어떻게
MYGlobalVariable = 0; // Or ny other default value.
때문입니다.
종료 코드뿐만 아니라 특정 오류를 포함해야합니다. – Avi