Languages/C++

[C++ 기초] auto의 사용법

테드리 2024. 3. 21. 00:47

▶auto 란?

C++ 내의 예약어(명령어) 중 하나로 데이터의 타입을 자동으로 지정해주는 명령어이다.

 

지금까지 우리는 변수를 선언할 때 변수형을 먼저 설정해주고, 변수명을 지정한 후, 변수를 초기화하는 식으로 변수를 선언하였다.

#include <iostream>

using namespace std;
int main() {
	
    int a = 5;		//int형 변수 선언
    float b = 0.1;	//float형 변수 선언

}

 

이 때, int나 float 대신 auto를 할당하게 되면, 초기화 값이 무엇이냐에 따라서 변수형을 자동으로 지정해준다. 즉, a = 5로 초기화한다면, a의 자료형은 int가 되는 것이고, b = 0.1로 초기화하면, b의 자료형은 float형이 되는 것이다. 

사용법은 아래와 같다.

 

#include <iostream>

using namespace std;
int main() {
	
    auto a = 5;		//a는 int형
    auto b = 0.1;	//b는 float형

}

 

사실 auto를 사용하는 것은 코딩할 때 좋은 습관은 아니다. 그 이유는 다음과 같다.

 

1) 의도하지 않은 타입 추론: 때때로 auto는 개발자의 의도와 다른 타입을 추론할 수 있다. 예를 들어, 실수 연산의 결과를 auto 변수에 할당할 때, 개발자가 기대한 것보다 더 넓은 범위의 실수 타입이 선택될 수 있다.

 

2) 오버로딩된 함수와의 상호작용: auto는 오버로딩된 함수를 사용할 때 예상치 못한 결과를 초래할 수 있다. 특정 오버로드를 선택하는 과정에서 auto 변수의 타입이 결정적인 역할을 할 수 있으며, 이는 개발자의 의도와 다를 수 있다.

 

3) 디버깅 어려움: 디버거를 사용할 때 auto로 선언된 변수의 타입을 확인하기가 더 어려울 수 있다. 

'Languages > C++' 카테고리의 다른 글

[C++ 기초] C++ 연산자 종류  (0) 2024.03.21
[C++ 기초] 변수의 자료형  (0) 2024.02.06
[C++ 기초] 변수 선언과 규칙  (1) 2024.02.05
[C++ 기초] C++ 기본사항  (0) 2024.02.05