찾다
php教程PHP开发extern 사용법 요약

extern 사용법 요약

Dec 19, 2016 pm 02:33 PM
extern

extern

소스 파일 A에 정의된 함수는 다른 소스 파일에서는 보이지 않습니다(즉, 액세스할 수 없습니다). 소스 파일 B에서 이 함수를 호출하려면 B의 헤드에 외부 선언을 추가해야 합니다.


extern function 프로토타입


이렇게 하면 소스 파일 해당 함수는 B에서도 호출할 수 있습니다.
여기서 표현의 차이에 주의하세요. A에서는 정의이고 B에서는 진술입니다. 함수는 하나의 소스 파일에서만 정의할 수 있고 반드시 정의해야 하지만, 다른 여러 소스 파일에서도 선언할 수 있습니다. 정의는 실제로 해당 엔터티를 생성하는 스토리지 할당을 발생시킵니다. 선언으로 인해 스토리지 할당이 발생하지 않습니다. 대략적으로 비유하자면, 소스 파일 B에서 선언한 후 A의 함수를 볼 수 있도록 B에서 창을 여는 것과 같습니다.

#i nclude "stdafx.h"


1.extern은 변수 선언에 자주 사용됩니다. *.c 파일에서 사용할 수 있습니다. 변수가 선언되었습니다. 이 전역 변수를 참조하려면 이를 *.h에 배치하고 extern으로 선언합니다.
2. 함수 선언에 extern 키워드가 포함되어 있으면 함수가 다른 소스 파일에 정의될 수 있다는 의미일 뿐이며 다른 효과는 없습니다. 즉, 다음 두 함수 선언 사이에는 차이가 없습니다:
extern int f() 및 int f()
============= === ==========
함수를 정의하는 c/cpp 파일이 해당 헤더 파일에 정의된 함수를 선언하는 경우 다른 c/cpp 파일에서 이 함수를 사용하려면 헤더 파일만 포함하면 됩니다.
헤더 파일을 포함하지 않으려면 c/cpp에서 함수를 선언하세요. 일반적으로 "extern"은 이 파일에 정의된 함수를 선언하는 데 사용되지 않고 "extern"은 다른 파일에 정의된 함수를 선언하는 데 사용됩니다. 이렇게 하면 이 파일에서 다른 파일에 정의된 함수를 호출할 때 필요가 없습니다. 헤더 파일을 포함하려면
include "*.h"를 사용하여 함수를 선언하고 선언 후 바로 사용할 수 있습니다.
============================================== ================================================= ================================================= ================================================= ==============================            ///extern.cpp 내용은 다음과 같습니다.
 
//extern.cpp: 콘솔 애플리케이션의 진입점을 정의합니다.
 //
 
 #i nclude "stdafx.h"
 extern print(char *p);
int main (int argc, char* argv[])
{
char *p="hello world!";
print(p);
return 0; print.cpp의 내용은 다음과 같습니다
  #i nclude "stdafx.h"
  #i nclude "stdio.h"
 print(char *s)
 {
printf(" 문자열은 %s/n",s);
}

결과적으로 프로그램이 정상적으로 실행되어 결과를 출력할 수 있습니다. "extern"을 제거해도 프로그램은 계속 정상적으로 실행될 수 있습니다.
 
함수 선언에서 "extern"은 해당 함수가 이 파일에 정의되어 있는지 아니면 다른 파일에 정의되어 있는지를 나타내는 데만 사용되는 것을 볼 수 있습니다. 함수를 사용하기 전에 선언했다면 헤더 파일을 포함할 필요가 없습니다.
 
VC++6.0에서 "미리 컴파일된 헤더 지시문을 찾는 동안 예기치 않은 파일 끝" 문제가 자주 발생합니까?

해결 방법: VC++6.0에서 자주 발생하는 "치명적인 오류 C1010: "미리 컴파일된 헤더 지시문을 찾는 동안 예기치 않은 파일 끝" 문제가 발생합니까?

모두가 VC6에 있다고 생각합니다. 0 이런 문제가 자주 발생하는데 어떻게 해결하나요?

1. ";", "}"가 빠졌는지 확인하세요

예: 클래스와 구조체 뒤에 있는 세미콜론

이 깊습니다. 숨겨진 매크로 및 .h 파일의 문제는 약간의 생각이 필요합니다

2. 클래스의 일부 정의가 삭제되었을 것입니다. 예, 다음과 같습니다. :
.h:
#if !define(AFX_CHILDFRM_H__54CA89DD_BA94_11D4_94D7_0010B503C2EA__INCLUDED_)

#define AFX_CHILDFRM_H__54CA89DD_BA94_11D4_94D7_00 10B503C2 EA__INCLUDED_

.......
//{{AFX_INSERT_LOCATION}}
// 마이크로소프트 Visual C++에서는 이전 줄 바로 앞에 추가 선언을 삽입합니다.

#endif // !definated(AFX_MAINFRM_H__54CA89DB_BA94_11D4_94D7_0010B503C2EA__INCLUDED_)

새 클래스를 만들어 거기에 복사하거나 추가할 수 있습니다. .  

3. 헤더

에 #i nclude "stdafx.h"를 추가합니다. 4. CPP 파일의 첫 번째 줄에 #i nclude "stdafx.h"를 추가하거나 모두 다시 빌드합니다.

5.

(1) [프로젝트] - [설정] - [C/C++] - [카테고리]
(2) [미리 컴파일된 헤더]를 선택합니다. (3) 단일 선택 [미리 컴파일된 헤더를 사용하지 않음]

(4).


위의 방법으로 문제가 해결되지 않으면 다음 내용을 읽어보세요. 이러한 오류가 발생하려면 .H 및 .CPP 파일을 추가했을 가능성이 있습니다.
이름에 "stdafx.h"가 포함되어 있습니다. 여러 파일에서 동시에 구조 유형을 사용하려면 계속 읽어야 합니다.

type 정의는 유형 변수의 정의와 다릅니다.
유형 정의는 유형을 설명할 뿐이고
는 컴파일러가 볼 수 있으며
은 실행 가능한 코드를 생성하지 않습니다.
변수 정의는 실행 파일에 이러한 내용이 실제로 존재하는 것을 말합니다.

.c마다 타입 정의를 명확하게 작성하는 것이 번거롭기 때문에
일반적으로 .h
에 타입 정의를 작성하고, .c에서는 간단한 작성 방법을 사용합니다. , 예를 들어 struct A a;
이와 같이 변수를 정의하면
전체 유형 설명을 다시 작성할 필요가 없습니다.

------------------------------- --- ---------------
따라서 구조체 유형 정의는 XX.h에 배치되고
XX.cpp가 추가됩니다.
XXXXX.cpp plus #i nclude "XX.h"
그런 다음 extern을 직접 사용합니다. struct str st_r; extern 사용법은 PHP 중국어 홈페이지를 참고해주세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구