본문으로 건너뛰기
0%

CV-qualifiers 설명 - const와 volatile 이해하기

카테고리

CV-qualifiers

0. 서문

CV-qualifiers에 대해 이야기해봅시다! const는 상수를 표현하기 위한 것이고, volatile은 변경 가능한(volatile) 타입을 표현하기 위한 것입니다.

STL에서는 constvolatile을 함께 CV-qualifiers로 정의합니다. 여기서 확인해보세요!

1. 표기법

C++에서 CV-qualifiers와 같은 타입 수식어는 타입의 왼쪽과 오른쪽 모두에 나타날 수 있습니다.

무슨 말인지 보여드리겠습니다:

const int i = 100;
int const i = 100;

다른 프로그래밍 언어에서 오셨다면 이것이 혼란스러울 수 있습니다. 왜냐하면 const는 보통 타입의 왼쪽에 쓰이기 때문입니다.

C와 C++에서는 위의 두 표현식이 모두 올바르고 동일합니다!

핵심 규칙은 이렇습니다: const는 오른쪽에서 왼쪽으로 수식하며, 왼쪽에 아무것도 없을 때만 왼쪽에서 오른쪽으로 수식합니다.

왜 이렇게 설계했을까요?

가독성의 이점

위의 예제들은 동일했지만, 포인터를 다룰 때는 달라집니다:

const char *const s = "aaa";
char const *const s = "aaa";

두 표현식은 같지만, 두 개의 const 키워드가 섞여 있다는 점에 주목하세요. 첫 번째 예제에서는 하나의 const가 왼쪽에서 오른쪽으로 수식하고, 다른 하나는 오른쪽에서 왼쪽으로 수식합니다.

표현식이 복잡해질 때, const를 일관되게 오른쪽에 배치하면(오른쪽에서 왼쪽으로 수식) 훨씬 더 나은 가독성을 제공합니다.

이렇게 생각해보세요:

  • char const *const s는 “s는 const char에 대한 const 포인터”로 읽힙니다
  • 오른쪽에서 왼쪽으로 읽기: “s는 const이고, const인 char를 가리킨다”

이 규칙은 더 복잡한 포인터 선언을 다룰 때 특히 도움이 됩니다. const를 항상 수식하는 대상의 오른쪽에 놓음으로써, 선언을 일관된 방식으로 오른쪽에서 왼쪽으로 읽을 수 있습니다.

CV-qualifiers 프로 팁

  1. 일관성 유지: 왼쪽 또는 오른쪽 const 중 하나를 선택하고 코드베이스 전체에서 일관되게 사용하세요
  2. 오른쪽에서 왼쪽으로 읽기: 많은 C++ 전문가들은 오른쪽에서 왼쪽으로 더 자연스럽게 읽히기 때문에 오른쪽 const를 선호합니다
  3. 팀 표준: 팀의 코딩 표준을 따르세요 - 개인적인 선호보다 일관성이 더 중요합니다

CV-qualifiers를 제대로 이해하면 더 나은 C++ 프로그래머가 되고 더 유지보수하기 쉬운 코드를 작성하는 데 도움이 됩니다! 🎯

댓글 남기기

여러분의 생각을 들려주세요

댓글

GitHub 계정으로 로그인하여 댓글을 남겨보세요. 건설적인 의견과 질문을 환영합니다!

댓글을 불러오는 중...