[C] C언어의 extern 키워드

2025. 7. 30. 17:55·소프트웨어/C

extern 키워드는 분할 컴파일 시 외부 소스코드에서 정의한 변수를 현재 소스코드에서도 사용할 수 있도록 해주는 키워드이다.

프로젝트에서 전역적으로 참조되는 구조체나, 변수, 함수를 여러 소스코드에서 공유할 때 주로 사용한다.

 

 

재미있었던 점은, A.c에서 extern으로 외부 변수를 참조할 경우 해당 변수는 A.c에서만 사용할 수 있지만, A.c가 #include하는 헤더파일에서 extern으로 변수를 가져오면, 그 헤더파일을 포함하는 모든 소스파일에서 해당 변수에 접근할 수 있다는 점이었다.

 

이는 C 언어의 컴파일 과정과 관련이 있다. 전처리 단계에서 #include된 헤더파일의 내용은 해당 소스파일에 그대로 복사되기 때문에, extern 선언이 포함된 헤더파일을 참조한 모든 소스파일에서 동일한 외부 변수에 접근할 수 있게 되는 것이었다.

 

따라서 변수의 사용 scope를 고려해, 헤더파일에서 extern 처리를 해 주는 선택지가 있다는 점을 기억해야겠다.

'소프트웨어 > C' 카테고리의 다른 글

[C] void* 포인터  (0) 2025.08.04
[C] 헤더파일에 대하여  (0) 2025.08.02
[C] C의 파일시스템, fopen_s()  (0) 2025.07.24
[C] C언어의 조건부 컴파일 지시자(#if #ifdef #ifndef #endif)  (0) 2025.07.17
[C] volatile 키워드  (0) 2025.06.23
'소프트웨어/C' 카테고리의 다른 글
  • [C] void* 포인터
  • [C] 헤더파일에 대하여
  • [C] C의 파일시스템, fopen_s()
  • [C] C언어의 조건부 컴파일 지시자(#if #ifdef #ifndef #endif)
jh-rrr
jh-rrr
기술의 깊이에 집중하며 성장하길 지향합니다.
  • jh-rrr
    Embedded World
    jh-rrr
  • 전체
    오늘
    어제
    • 분류 전체보기 (64)
      • 소프트웨어 (17)
        • 프로그래밍 (2)
        • C (10)
        • Python (1)
        • 운영체제 (3)
        • 네트워크 (0)
      • Embedded Systems (16)
        • 리눅스 (10)
        • MCU 기본 (2)
        • 임베디드 레시피 (0)
      • Projects (1)
        • Cortex-M3 (1)
        • 재난 구조 로봇 (0)
      • AI (11)
        • Computer Vision (2)
        • Deep Learning (3)
        • cs224n (2)
        • cs231n (2)
      • 취업 준비 (0)
        • 프로젝트 & 자격증 (1)
      • 엔지니어링 뉴스 (3)
      • Paper Reviews (4)
      • Insights (8)
        • Seminar ! (2)
        • 서평 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    stm32f 시리즈를 이용한 arm cortex-m3/m4 구조와 응용
    커널 이미지
    일귀
    리눅스 오류
    conda: command not found
    리눅스
    OS 이미지
    커널 이미지란
    essential deep learning paper reading
    kernel image 란
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
jh-rrr
[C] C언어의 extern 키워드
상단으로

티스토리툴바