• 티스토리 홈
  • 프로필사진
    유니얼
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
유니얼
  • 프로필사진
    유니얼
    • 분류 전체보기 (295)
      • Unity (17)
        • 게임 개발 (5)
      • Unreal (24)
        • 게임 개발 (20)
      • DirectX (36)
      • 코딩테스트 (91)
        • 프로그래머스 (25)
        • 백준 (66)
      • Google Workspace (1)
      • Programing (102)
        • C# (68)
        • C++ (24)
        • JavaScript (10)
      • 게임 서버 프로그래밍 (17)
      • Web (6)
        • 슈퍼코딩 (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
    등록된 댓글이 없습니다.
  • 최근 공지
    등록된 공지가 없습니다.
# Home
# 공지사항
#
# 태그
# 검색결과
# 방명록
  • [C++ 프로그래밍] auto 키워드
    2024년 06월 21일
    • 유니얼
    • 작성자
    • 2024.06.21.:29
    728x90

    C++ 기초 프로그래밍: auto 키워드

    C++11에서 도입된 auto 키워드는 변수의 타입을 자동으로 추론해주는 기능을 제공합니다. 이는 코드의 가독성을 높이고, 특히 복잡한 타입을 다룰 때 코드 작성을 간편하게 해줍니다. 이번 블로그 글에서는 C++의 auto 키워드에 대해 알아보고, 이를 활용하는 방법과 그 장점을 소개하겠습니다.

    auto 키워드의 사용

    auto 키워드는 변수 선언 시 변수의 타입을 컴파일러가 자동으로 결정하도록 합니다. 예를 들어, 변수에 초기값을 할당할 때 auto를 사용하면, 컴파일러는 그 초기값을 기반으로 변수의 타입을 추론합니다.

    auto 키워드의 장점

    1. 코드 간결성: 복잡한 타입을 명시적으로 선언하는 대신, auto를 사용하면 코드가 간결해집니다. 이는 특히 반복자(iterator)나 람다 표현식과 같이 타입이 복잡한 경우 유용합니다. std::vector<int>::iterator it = vec.begin(); // 복잡한 타입 선언 auto it = vec.begin(); // 간결한 타입 선언
    2. 유지보수성 향상: 변수의 타입이 변경될 경우, 해당 변수를 사용하는 코드에서 타입을 일일이 수정할 필요 없이 auto 키워드를 사용하면 됩니다. auto var = getComplexType(); // getComplexType 함수의 반환 타입이 변경되더라도 수정 필요 없음
    3. 템플릿 사용 시 편리함: 템플릿 함수나 클래스의 반환 타입을 정확히 알기 어려울 때 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일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
목차
표시할 목차가 없습니다.
    • 안녕하세요
    • 감사해요
    • 잘있어요

    티스토리툴바