C++

C++ 유의사항 1)

나른한여우 2023. 6. 21. 18:30

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