▶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 |