Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C/C++에서 수정자(Modifier)를 사용하는 이유는 무엇일까?

C/C++에서 수정자(Modifier)는 기본 자료형(base type)의 의미를 변경하여, 프로그램이 요구사항에 맞게 동작하도록 만들어 주는 역할을 합니다.

대표적인 예로 '시간' 값을 들 수 있습니다. 시간은 음수가 될 수 없는 값이므로, 음수를 표현할 수 없는 unsigned 타입으로 선언하는 것이 논리적으로 합리적입니다. 이처럼 수정자를 활용하면 변수가 가질 수 있는 값의 범위를 상황에 맞게 조정할 수 있습니다.

C++에서 사용할 수 있는 데이터 타입 수정자

C++에서는 char, int, double 자료형 앞에 다음과 같은 수정자를 붙여 사용할 수 있습니다.

  • signed — 음수와 양수를 모두 표현
  • unsigned — 양수(및 0)만 표현
  • long — 더 넓은 값의 범위 확보
  • short — 더 좁은 값의 범위로 메모리 절약

수정자의 적용 범위

signed, unsigned, long, short는 모두 정수 계열 기본 타입에 적용할 수 있습니다. 여기에 더해 다음과 같은 규칙도 있습니다.

  • signedunsignedchar에도 적용할 수 있습니다.
  • longdouble에도 적용할 수 있습니다(long double).

또한 signedunsignedlong 또는 short 수정자와 조합하여 접두사 형태로 함께 사용할 수 있습니다. 예를 들어 unsigned long int처럼 작성할 수 있습니다.

축약 표기법 (Shorthand Notation)

C++은 unsigned, short, long 정수를 선언할 때 간편한 축약 표기법을 제공합니다. int 키워드를 생략하고 단어만 사용해도 되며, 이 경우 int가 자동으로 포함된 것으로 간주됩니다.

unsigned long a;      // int 생략
unsigned long int a; // 위 선언과 완전히 동일

즉, 두 선언은 컴파일러 입장에서 같은 의미를 가지므로, 코드의 가독성에 따라 편한 방식을 선택해 사용하면 됩니다.