집 >백엔드 개발 >C#.Net 튜토리얼 >C/C++에서 extern 키워드를 사용하는 방법
이 글은 C/C++에서 extern 키워드의 사용법을 주로 다루고 있으니 참고하시면 좋을 것 같습니다.
1. 기본 설명
extern을 변수나 함수 앞에 배치하여 변수나 함수의 정의가 다른 파일에 있음을 나타낼 수 있으며, 컴파일러는 이 변수나 함수를 발견하면 다른 모듈에서 해당 정의를 찾도록 유도합니다. . 또한 extern을 사용하여 사양을 연결할 수도 있습니다.
extern에는 두 가지 기능이 있습니다. (1) 다음과 같이 "C"와 함께 사용되는 경우: extern "C" void func(int a) func 함수 이름을 컴파일할 때 C 규칙에 따라 변환하도록 컴파일러에 지시합니다. C++ 대신 해당 함수 이름. 이 점에 대해서는 "C++ 개체 모델 심층 탐구"라는 책에서 답을 찾을 수 있습니다. 또한 Linux에는 스택 정보를 인쇄할 수 있는 역추적 기능이 있으며, 번역된 C++를 볼 수 있습니다. 함수 이름 (이 함수는 muduo 라이브러리에서 사용됩니다) .
(2) 헤더 파일에서와 같이 변수나 함수를 수정하기 위해 extern을 "C"와 함께 사용하지 않는 경우: extern int g_Int의 기능은 함수 또는 전역 변수 키워드의 범위를 선언하는 것입니다. 함수와 변수는 이 모듈이나 다른 모듈에서 사용할 수 있습니다. 정의가 아닌 선언이라는 점을 기억하세요!
2. extern이 변수를 수정하는 경우
올바른 사용 방법은 .c 파일에서 변수를 정의하고 해당 .h 파일에서 선언하는 것입니다.
변수에 메모리 공간을 할당할지 여부에 따라 선언인지 정의인지 판단합니다(엄격히 말하면 단순히 메모리를 할당하는 것이며 초기화 부분은 포함하지 않습니다). 그렇다면 문장은 그것을 선언하거나 정의합니까? 이는 진술이자 정의입니다. test.h 파일에 이 문장을 사용하면 i가 다른 파일에서 정의되거나(e.g.1) 해당 파일이 반복적으로 포함되면(e.g.2) 재정의 오류가 발생합니다.
/* e.g.1 以下为3个文件 */ //test.h int i; //test2.h int i; //main.cpp #include "test.h" #include "test2.h" int main() { return 0; }rrree
관련 튜토리얼: C 비디오 튜토리얼
위 내용은 C/C++에서 extern 키워드를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!