C 언어 는 extern 키 워드 를 정확하게 사용 합 니 다.
1.같은 파일 의 변 수 를 참조 합 니 다.
#include<stdio.h>
int func();
int main()
{
func(); //1
printf("%d",num); //2
return 0;
}
int num = 3;
int func()
{
printf("%d
",num);
}
이 순서에 따라 변수 num 이 main 함수 뒤에 설명 하고 초기 화 하면 main 함수 에서 num 이라는 변 수 를 직접 참조 할 수 없습니다.컴 파일 러 가 이 말 을 컴 파일 할 때 num 이라는 변수의 성명 을 찾 을 수 없 지만 func 함수 에 서 는 정상적으로 사용 할 수 있 기 때 문 입 니 다.func 의 num 호출 은 num 의 성명 과 초기 화 이후 에 발생 하기 때 문 입 니 다.만약 내 가 num 의 성명 위 치 를 바 꾸 고 싶 지 않 지만 main 함수 에서 num 이라는 변 수 를 직접 사용 하려 면 어떻게 해 야 합 니까?extern 이라는 키 워드 를 사용 할 수 있 습 니 다.아래 코드 와 같이 extern 키 워드 를 이용 하여 num 변 수 를 먼저 설명 하고 컴 파일 러 num 이라는 변 수 는 존재 하지만 그 전에 설명 한 것 이 아 닌 지 다른 곳 에서 찾 아 보 세 요.과연 컴 파일 을 순조롭게 통과 할 수 있 습 니 다.그러나 컴 파일 러 를 속 이려 고 해도 안 됩 니 다.예 를 들 어 extern int num 을 성명 한 것 입 니 다.그러나 뒤에 서 는 num 변 수 를 제대로 설명 하지 않 았 습 니 다.그러면 컴 파일 러 는 다른 곳 으로 찾 아 갔 지만 찾 지 못 하면 안 됩 니 다.
다음 프로그램 은 extern 키 워드 를 이용 하여 뒤에서 정 의 된 변 수 를 사용 합 니 다.
#include<stdio.h>
int func();
int main()
{
func(); //1
extern int num;
printf("%d",num); //2
return 0;
}
int num = 3;
int func()
{
printf("%d
",num);
}
2.다른 파일 의 변 수 를 참조 합 니 다.extern 이라는 키워드 가 이 기능 이 라면 이 키 워드 는 불필요 해 집 니 다.위의 프로그램 은 num 변 수 를 main 함수 의 위 에 설명 함으로써 main 함수 에서 도 사용 할 수 있 기 때 문 입 니 다.
extern 이라는 키워드 의 진정한 역할 은 같은 파일 에 없 는 변수 나 함 수 를 참조 하 는 것 입 니 다.
main.c
#include<stdio.h>
int main()
{
extern int num;
printf("%d",num);
return 0;
}
b.c
#include<stdio.h>
int num = 5;
void func()
{
printf("fun in a.c");
}
예 를 들 어 여기 b.c 에서 하나의 변수 num 을 정 의 했 습 니 다.만약 에 main.c 에서 이 변 수 를 인용 하려 면 extern 이라는 키 워드 를 사용 할 수 있 습 니 다.여기 서 성공 적 으로 인용 할 수 있 는 이 유 는 num 이라는 키 워드 는 b.c 에서 하나의 전체 변수 입 니 다.즉,하나의 변 량 이 전체 변수 일 때 만 extern 변수 가 작용 하고 아래로 이렇게 하면 안 됩 니 다.mian.c
#include<stdio.h>
int main()
{
extern int num;
printf("%d",num);
return 0;
}
b.c
#include<stdio.h>
void func()
{
int num = 5;
printf("fun in a.c");
}
또한 extern 키 워드 는 형식 과 변수 이름 만 가리 키 면 됩 니 다.다시 할당 할 수 없습니다.초기 화 는 원본 파일 이 있 는 곳 에서 진행 되 어야 합 니 다.초기 화 를 하지 않 으 면 전역 변 수 는 컴 파일 러 에 의 해 자동 으로 0 으로 초기 화 됩 니 다.이런 식 으로 쓰 면 안 된다.
extern int num=4;
그러나 성명 후에 변수 이름 으로 수정 할 수 있 습 니 다.이렇게:
#include<stdio.h>
int main()
{
extern int num;
num=1;
printf("%d",num);
return 0;
}
이 변수 가 수정 되 지 않 으 려 면 const 키 워드 를 사용 하여 수식 할 수 있 습 니 다.다음 과 같이 쓰 십시오.mian.c
#include<stdio.h>
int main()
{
extern const int num;
printf("%d",num);
return 0;
}
b.c
#include<stdio.h>
const int num=5;
void func()
{
printf("fun in a.c");
}
include 를 사용 하여 다른 파일 을 모두 포함 시 키 면 다른 파일 의 변 수 를 참조 할 수 있 습 니 다.그러나 이 결 과 는 포 함 된 파일 의 모든 변수 와 방법 을 이 파일 에 사용 할 수 있 습 니 다.그러면 안전 하지 않 습 니 다.한 파일 이 다른 파일 의 한 변 수 를 사용 하 기 를 원한 다 면 extern 키 워드 를 사용 하 는 것 이 좋 습 니 다.3.다른 파일 의 함 수 를 참조 합 니 다.
extern 은 다른 파일 의 변 수 를 인용 하 는 것 외 에 다른 파일 의 함 수 를 인용 할 수 있 습 니 다.인용 방법 은 인용 변수 와 비슷 합 니 다.
mian.c
#include<stdio.h>
int main()
{
extern void func();
func();
return 0;
}
b.c
#include<stdio.h>
const int num=5;
void func()
{
printf("fun in a.c");
}
여기 main 함수 에서 b.c 의 함수 func 를 참조 하 였 습 니 다.모든 함수 가 전역 적 이기 때문에 함수 에 대한 extern 용법 은 전역 변수 에 대한 수식 과 기본적으로 같 습 니 다.주의해 야 할 것 은 반환 값 의 유형 과 파 라미 터 를 가리 키 는 것 입 니 다.위 에서 말 한 것 은 편집장 님 께 서 소개 해 주신 C 언어 는 extern 키 워드 를 정확하게 사용 하여 상세 하 게 통합 되 었 습 니 다.여러분 께 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.편집장 님 께 서 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.