변수이름을 지을 때 일반적으로 지켜야 할 사항
1. 의미를 파악할 수 있도록 식별할 수 있는 단어로 구성
2. 일반적으로 소문자로 구성클래스 이름은 일반적으로 대문자로 시작
3. 숫자는 변수 이름의 첫 글자로 사용할 수 없음
4. 여러 단어를 조합할 때는 일관성 있는 규칙을 적용할 것
5. 예약어는 변수 이름으로 사용할 수 없음
c++ 기본자료형
C++11 표준 문서에 정리된 기본 자료형은 아래 표와 같습니다.
데이터를 담을 수 있는 최소 크기를 비트 단위로 명시하고 있는데요.
실제 크기는 운영체제나 cpu에 따라 달라질 수 있습니다.
최대 크기는 달라질 수 있으나 최소 크기는 준수할 수 있도록 컴파일러에게 기준을 제시합니다.
자료형 |
의미 |
최소크기 |
short |
짧은 정수 |
16bit |
int |
정수 |
16bit |
long |
긴 정수 |
32bit |
long long |
긴 정수 |
64bit |
float |
단정도 부동소수점 |
32bit |
double |
배정도 부동소수점 |
64b |
long double |
특수정도 부동소수점 |
64bit |
bool | 논리 | true, false |
char | 문자 | 8bit |
wchar_t | 확장 문자 | 16bit |
char16_t |
유니코드 문자 |
16bit |
char32_t |
유니코드 문자 |
32bit |
signed와 unsigned
기본 자료형 중 bool 형과 long double형을 제외하고 모두 signed와 unsigned 형태를 가질 수 있습니다.
디폴트는 signed이며 음수, 양수 모두를 범위로 가질 수 있습니다.
unsigned 키워드를 앞에 붙이면 저장 범위는 유지한 채 양수만 가질 수 있습니다.
표현 크기는 같으나 양수 범위로 이동한다는 것을 기억합시다.
자료형 별칭 만들기
변수의 이름을 잘 지어야 읽기 좋은 코드를 만들 수 있습니다.
같은 의미로 기본 자료형에 의미 있는 별칭(alias)을 부여할 수 있습니다.
자료형에 별칭을 부여하는 방법은 두가지가 있습니다.
typedef [기존 자료형] [별칭]
typedef double salary;
using [별칭] = [기존 자료형]
using salary = double;
아무래도 salary라는 별칭이 가독성을 높일 수 있겠죠?
그리고 변수를 선언하기 전에 정의만 보고도 앞으로 salary와 관련된 변수를 선언한다는 것을 알 수 있습니다.
그렇다면 관련 예제를 보겠습니다.
using namespace std; int main() { using salary = double; // double형에 salary라는 별칭 선언 using point = int; // int형에 point라는 별칭 선언 // sangwon 변수를 salary형으로 선언하고 값 할당 salary sangwon = 125.20; // peter 변수를 salary형으로 선언하고 값 할당 salary peter = 100.12; } | cs |
auto형 변수 : 초깃값 필요
지금까지는 변수를 선언할 때 자료형을 미리 지정해야 했습니다.
c++11 새로운 표준 부터는 컴파일러가 자료형을 자동으로 결정하는 auto라는 키워드를 제공해줍니다.
하지만 컴파일러가 초깃값을 보고 자료형을 결정합니다.
따라서 반드시 변수 초기화 코드가 있어야 합니다.
auto 변수명 = 초깃값(상수, 함수, 변수 모두 가능);
auto형은 C++11에서 가장 많이 활용하는 기능 중 하나입니다.
다음 예제를 보겠습니다.
int main() { int n = 2; float f = 2.3; auto answer1 = n; auto answer2 = f; auto answer3 = n + f; } | cs |
auto형은 클래스, 템플릿, 라이브러리 등에서 유용하게 활용됩니다.
auto형을 활용하면 코드를 간결하고 편리하게 작성할 수 있습니다.
decltype형 : 초깃값 불필요
auto형은 컴파일러가 알아서 자료형을 결정해줍니다. 그러나 초깃값을 설정해야 합니다.
만일 초깃값도 설정하기 싫다면 declytype형을 사용합니다.
decltype 형으로 변수를 선언하는 방법은 아래와 같습니다.
decltype( 함수f() ) [선언할 변수];
decltype( 변수 ) [선언할 변수];
deceltype( 변수) ) [선언할 변수];
1은 f() 함수의 반환형으로 선언할 변수의 자료형을 결정합니다.
2는 이미 선언된 변수의 자료형으로 선언할 변수의 자료형을 결정합니다.
3은 2와 같으나 이미 선언된 변수를 사용할 때 레퍼런스 변수만을 사용할 수 있습니다.
int f() { return 20 + 30; } int main() { double d = 1.231; decltype(f()) answer1; // ① decltype(d) answer2; // ② decltype((d) answer3 = answer2; // ③ } | cs |
자료형이
1은 int형
2는 double형
3은 double&형으로 결정됩니다.
'SW > C++' 카테고리의 다른 글
C++11 : 포인터에 대해 알아볼까요? (0) | 2018.12.20 |
---|---|
C++11 : 참조자와 한정자에 대해 알아볼까요? (0) | 2018.12.18 |
C++11 : 표준입출력에 대해 알아볼까요? (0) | 2018.12.17 |
[ C++ ] namespace에 대해 알아볼까요? (0) | 2018.12.15 |
C++와 객체 지향에 대해 알아볼까요? (0) | 2018.11.19 |