-
[C++ 프로그래밍] auto 키워드2024년 06월 21일
- 유니얼
-
작성자
-
2024.06.21.:29
728x90C++ 기초 프로그래밍: auto 키워드
C++11에서 도입된 auto 키워드는 변수의 타입을 자동으로 추론해주는 기능을 제공합니다. 이는 코드의 가독성을 높이고, 특히 복잡한 타입을 다룰 때 코드 작성을 간편하게 해줍니다. 이번 블로그 글에서는 C++의 auto 키워드에 대해 알아보고, 이를 활용하는 방법과 그 장점을 소개하겠습니다.
auto 키워드의 사용
auto 키워드는 변수 선언 시 변수의 타입을 컴파일러가 자동으로 결정하도록 합니다. 예를 들어, 변수에 초기값을 할당할 때 auto를 사용하면, 컴파일러는 그 초기값을 기반으로 변수의 타입을 추론합니다.
auto 키워드의 장점
- 코드 간결성: 복잡한 타입을 명시적으로 선언하는 대신, auto를 사용하면 코드가 간결해집니다. 이는 특히 반복자(iterator)나 람다 표현식과 같이 타입이 복잡한 경우 유용합니다. std::vector<int>::iterator it = vec.begin(); // 복잡한 타입 선언 auto it = vec.begin(); // 간결한 타입 선언
- 유지보수성 향상: 변수의 타입이 변경될 경우, 해당 변수를 사용하는 코드에서 타입을 일일이 수정할 필요 없이 auto 키워드를 사용하면 됩니다. auto var = getComplexType(); // getComplexType 함수의 반환 타입이 변경되더라도 수정 필요 없음
- 템플릿 사용 시 편리함: 템플릿 함수나 클래스의 반환 타입을 정확히 알기 어려울 때 auto를 사용하면 유용합니다. template<typename T1, typename T2> auto add(T1 a, T2 b) -> decltype(a + b) { return a + b; }
주의사항
- auto 키워드를 사용할 때는 반드시 초기값을 지정해야 합니다. 초기값 없이 auto를 사용하면 컴파일 오류가 발생합니다. auto var; // 오류: 초기값이 없으므로 타입을 추론할 수 없음
- auto는 변수의 타입을 자동으로 추론하지만, 코드의 의도를 명확히 하는 것이 중요합니다. 과도한 auto 사용은 오히려 코드의 가독성을 해칠 수 있습니다.
예제 코드
#include <iostream> int main() { auto var1{12}; // int auto var2{13.0}; // double auto var3{14.0f}; // float auto var4{15.0l}; // long double auto var5{'e'}; // char auto var6{123u}; // unsigned int auto var7{123ul}; // unsigned long auto var8{123ll}; // long long std::cout << "var1 occupies : " << sizeof(var1) << " bytes" << std::endl; std::cout << "var2 occupies : " << sizeof(var2) << " bytes" << std::endl; std::cout << "var3 occupies : " << sizeof(var3) << " bytes" << std::endl; std::cout << "var4 occupies : " << sizeof(var4) << " bytes" << std::endl; std::cout << "var5 occupies : " << sizeof(var5) << " bytes" << std::endl; std::cout << "var6 occupies : " << sizeof(var6) << " bytes" << std::endl; std::cout << "var7 occupies : " << sizeof(var7) << " bytes" << std::endl; std::cout << "var8 occupies : " << sizeof(var8) << " bytes" << std::endl; return 0; }
출력 결과
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다:
var1 occupies : 4 bytes var2 occupies : 8 bytes var3 occupies : 4 bytes var4 occupies : 16 bytes var5 occupies : 1 bytes var6 occupies : 4 bytes var7 occupies : 8 bytes var8 occupies : 8 bytes
결론
C++의 auto 키워드는 타입을 자동으로 추론하여 변수 선언을 간편하게 해줍니다. 이를 통해 코드의 가독성과 유지보수성을 높일 수 있으며, 특히 복잡한 타입을 다룰 때 매우 유용합니다. 하지만 auto 키워드를 사용할 때는 초기값을 명시해야 하며, 코드의 의도를 명확히 하기 위해 적절하게 사용하는 것이 중요합니다.
반응형다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드
받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이
감지되어도 모달 창이 표시되지 않습니다.)