extern 예제

이전에 는 변수 선언에 적용 된 C extern 키워드를 보여 주었습니다. 더 일반적으로 extern은 선언에 적용할 수 있습니다. C에서 선언할 수 있는 두 가지 종류의 변수와 함수가 있습니다. 따라서 외종 키워드는 함수 선언에도 적용할 수 있습니다. 예를 들어 C 언어의 외종 변수의 예는 함수에 두 개 이상의 연결 사양이 있는 경우 동의해야 합니다. 함수를 C와 C++ 링키지를 모두 갖는 것으로 선언하는 오류입니다. 또한 함수에 대한 두 개의 선언이 프로그램에서 발생하는 경우(하나는 연결 사양이 있고 하나는 없는 경우) 연결 사양이 있는 선언이 먼저 되어야 합니다. 이미 연결 사양이 있는 함수의 중복 선언에는 첫 번째 선언에 지정된 연결이 지정됩니다. 예: 다음 예제에서는 C 연결이 있는 이름을 선언 하는 방법을 보여 주었습니다. 컴파일러는 변수가 동일한 파일 example.c 내에서 정의를 가질 것으로 예상하고 동일한 파일을 찾지 못하면 오류가 발생합니다. 반면에 함수에는 기본적으로 전역 범위가 있습니다. 따라서 컴파일러에 명시적으로 언급 할 필요가 없습니다 «친구를 봐 …

이 함수의 정의를 여기에서 찾을 수 있습니다.» 선언을 포함하는 파일을 포함하는 함수의 경우 충분합니다. (실제로 헤더 파일을 호출하는 파일). 예를 들어 다음 2 개의 파일을 고려하십시오 : example.c 또한 외부 키워드와 외부 연결은 두 가지 관심 영역을 나타냅니다. 외부 연결은 프로그램의 어느 곳에서나 액세스할 수 있음을 말하는 개체 특성입니다. 반면에 키워드는 선언된 개체가 여기에 정의되지 않고 다른 위치에 정의되어 있음을 나타냅니다. 프로그램에 원하는 만큼 선언을 넣을 수 있지만 하나의 범위 내에서 하나의 정의만 넣을 수 있습니다. 다음은 C 표준에서 오는 예입니다: 변수가 실제로 복잡한 배열인 경우(예: 이렇게 하면 코드가 극단적으로 중복될 수 있습니다). 그것은, 아주 가끔, 어떤 효과를 달성 하는 현명한 방법이 될 수 있습니다., 하지만 그것은 매우 특이 한. 헤더는 간접적으로 두 번 포함될 수 있습니다.

예를 들어 file4b.h가 표시되지 않는 형식 정의에 대해 file3b.h를 포함하고 file1b.c가 헤더 file4b.h와 file3b.h를 모두 사용해야 하는 경우 해결해야 할 몇 가지 까다로운 문제가 있습니다. 분명히 file4b.h만 포함하도록 헤더 목록을 수정할 수 있습니다. 그러나 내부 종속성을 인식하지 못할 수 있으며 코드가 계속 작동해야 합니다. 외부 변수는 프로그램이 시작될 때 할당되고 초기화되며 프로그램이 종료될 때만 메모리가 해제됩니다. 그들의 수명은 프로그램의 수명과 동일합니다. 이 예제에서는 변수 Global_변수가 파일 1에 정의됩니다.

Next Post:
Previous Post: