1) 변수의 유효범위
전역 변수는 유효범위가 따로 존재하지않음
특정 함수 내부에서 변수를 지정했을경우(스택) { } 중괄호의 범위가 생존 범위
- 같은 이름 두번 사용할 때 문제
2) 연산 우선순위
괄호를 이용해서 가시성을 높여줄수 있음
3) 타입 변환
캐스팅할 경우 타입에 따라서 값이 변경될수있음
각자 허용되는 byte단위 확인필요
ex) int x = 77777 > short로 캐스팅시 12241로 변환됨
위쪽에있던 비트 데이터가 짤린 상태로 저장
int > float 실수로 변환할 때 정밀도 차이가 있기 때문에 데이터 손실이 일어날수 있음
int > unsigned int 비트 단위로 보면 똑같은데, 분석하는 방법이 달라져 값이 변경될수 있음
4) 사칙 연산 관련
데이터형에 따른 오버플로우 조심해야함
기본적으로 int에 int를 곱하면 int로 나옴
__int64를 사용하거나 해야함
반대로 나눗셈을 할때는
0으로 나누기 조심 or 실수 관련
int / int = int로 인식함
ex) int 123 / int 1000을 할 경우 float로 변수를 지정하더라도 0으로 나올수있음
int/float float/int 는 float로 나옴
'C++' 카테고리의 다른 글
| 스택 프레임 (0) | 2023.07.06 |
|---|---|
| C++ 열거형 (0) | 2023.07.03 |
| SASM 어셈블리언어 (2) (0) | 2023.04.14 |
| 레지스터 이해하기 (1) (0) | 2023.04.14 |
| SASM 어셈블리언어 (1) (0) | 2023.04.12 |