`auto` 키워드 — 저장 클래스 지정자와 타입 추론
auto 키워드 — 저장 클래스 지정자와 타입 추론
auto라는 단어는 겉보기에 아무 일도 안 하는 것처럼 보여요. 그래도 C에서 이 키워드는 두 가지 역할을 해요. 하나는 오래된 저장 클래스 지정자로서의 용도, 다른 하나는 C23부터 생긴 타입 추론용 용도예요. 뒤에 어떤 기능이 새로 붙었는지가 이 페이지의 핵심이에요.
출처: cppreference
본문
auto 키워드는 **저장 클래스 지정자(storage class specifier)**로 쓰일 수 있고, C23부터는 **타입 추론(type inference)**에도 쓰일 수 있어요.
예전 C에서 auto는 자동 저장 기간을 나타내는 지정자였는데, 블록 안의 모든 변수가 기본값으로 그렇기 때문에 실질적으로 의미가 없었어요. 그래서 오랫동안 "붙여도 그만, 안 붙여도 그만"인 키워드였죠. C23에서 여기에 auto로 초기화식에서 타입을 추론하는 기능이 더해졌어요.
- 저장 클래스 지정자로서의
auto에 대한 자세한 내용은 저장 기간(storage duration) 문서를 참고해요. - C23의 타입 추론으로서의
auto는 초기화 표현식의 타입을 그대로 따라가는 방식으로 동작해요.
더 알아보기
- 저장 기간에 대한 storage duration 문서에서
auto의 전통적인 의미를 다뤄요. - C23 타입 추론은 C++의
auto와 유사하지만 C의 범위에 맞춰 더 제한적이에요.