언어/기술 질문

[기술 질문] #2_auto 키워드, extern 키워드

Hardii2 2023. 1. 1. 21:36

 

[기술 질문] #2_auto 키워드, extern 키워드

 

C++의 "auto" 키워드와 "extern" 키워드에 대해 알아보겠습니다.

 


 

Overview

 

  1. 개념
  2. 코드

 

개념

1. auto 키워드(자동 타입 추론)

  • C++11부터 제공하는 auto 키워드는 변수의 유형을 컴파일러가 자동으로 추론하도록 하는 기능을 제공합니다.
  • 지역 변수와 동일하게 함수 블록 내부에서 선언되며, 블록의 종료와 함께 소멸됩니다.
  • 메모리 구조의 "스택"에 메모리 할당을 받습니다.

 

2. extern 키워드(외부 변수)

  • 전역 변수와 동일하게 함수 블럭 밖에서 선언되며, 프로그램의 종료와 함께 소멸됩니다.
  • 메모리 구조의 "정적 데이터(Data) 영역"에 메모리 할당을 받습니다.
  • 외부 파일에서 선언한 전역 변수를 참조할 때 사용됩니다.
  • 주의할 점!! extern 키워드는 외부 파일의 "정적 변수"는 참조가 불가능합니다!!! 오직 전역 변수만 가능하니다!!!

 

 

[Basic C++] #28_static 키워드

[Basic C++] #28_static 키워드 C++ 개발에서 까다로운 문법 혹은 특별한 의미를 갖는 부분에 대해 알아보겠습니다. "전문가를 위한 C"의 10 항목, "C++의 까다롭고 유별난 부분들"에 해당하는 내용입니다.

webddevys.tistory.com

 

코드

1. extern 키워드

// File1.cpp

#include <iostream>
using namespace std;

int a = 5;

// FIle2.cpp

#include <iostream>
using namespace std;

extern int a;

 

Details

 

  • "File1"에서 선언한 전역 변수 a를 "File2"에서 extern 키워드를 통해 참조하고 있습니다.
  • 보시다시피, extern 키워드는 편리함을 주는 대신, 유지 보수에 심각한 문제를 야기하므로, 주의해서 사용해야 합니다.