C 언어 는 extern 키 워드 를 정확하게 사용 합 니 다.

4442 단어 C 언어extern
키워드 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 키 워드 를 정확하게 사용 하여 상세 하 게 통합 되 었 습 니 다.여러분 께 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.편집장 님 께 서 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기