연습장
유의사항 및 팁 본문
주제: 유의사항 및 팁
1. 변수의 유효범위
1) 외부에 선언 된 전역변수는 유효범위가 존재하지 않고, 언제 어디에서든 편하게 꺼내쓸 수 있다.
#include <iostream>
using namespace std;
int hp = 10; // 외부에 선언: 전역변수
int main(){
}
2) 문제가 발생하는 경우는 함수 내부에서 변수를 만들어 사용할 때 유효범위가 복잡해진다.
스택에 들어가 있는 변수는 { } 중괄호의 범위가 변수의 생존 범위이다.
#include <iostream>
using namespace std;
int main(){
int hp = 10; // 내부에 선언:
}
3) 혹시라도 같은 이름을 두 번 사용할 때 문제가 발생한다.
ex) int i나 int hp 또는 int count가 빈번하게 사용됨
#include <iostream>
using namespace std;
int main(){
int hp = 10; // 내부에 선언
cout << hp << endl;
int hp = 100; // 이런식으로 까먹고 한 번 더 사용하는 경우
}
해결방법
=> 중괄호를 하나 더 만들어서 그 안에 선언을 해준다.
=> 이름을 잘 명명해줄 것.
2. 연산의 우선순위
모든 연산자들의 우선순위가 존재한다.
But, 식을 세울 때 마다 우선순위표를 보며 코딩을 할 순 없기에, 강제적으로 ( ) 소괄호를 넣어 우선순위를 찝어준다.
#include <iostream>
using namespace std;
int main(){
int hp = 20;
cout << hp << endl;
bool isEven = ((hp%2) == 0) // 짝수여부 판별
bool isEvenOrDivBy3 = ((hp%2 == 0) || (hp%3 == 0)) //짝수거나 3으로 나뉘는 값인지
}
3. 타입 변환
C++에서는 (short) (float) (unsigned int)가 생략된다.
타입 변환은 항상 주의깊게 보고 진행해야 한다.
#include <iostream>
using namespace std;
int main(){
int hp = 20;
cout << hp << endl;
//타입변환
short hp2 = (short)hp; // 윗쪽 비트 데이터가 짤린 상태로 저장
float hp3 = (float)hp; // 실수로 변환할 때 정밀도 차이가 있기 때문에 데이터 손실
unsigned int hp4 = (unsigned int)hp;
}
4. 사칙 연산 관련
1) 곱셈에선 오버플로우를 주의해야 한다.
너무 큰 값을 곱하면 곱셈 결과가 와장창 깨질 수 있다.
2) 나눗셈에선 0으로 나누는지를 주의해야 한다.
int hp =123;
int maxHp = 0;
float ratio = hp / maxHp;
==> 크러쉬 발생
int hp =123;
int maxHp = 1000;
float ratio = hp / maxHp;
==> 0값 도출
정수와 정수끼리 나누게 되면 정수로 판단하려고 함
때문에 0.123이 정상적인 값이지만 0으로 도출되는 것임
'언리얼 개발자 > C++' 카테고리의 다른 글
반복문 (0) | 2022.09.12 |
---|---|
분기문 (1) | 2022.09.12 |
const와 메모리 구조 (0) | 2022.09.05 |
비트 연산과 비트 플래그 (0) | 2022.08.07 |
비교 연산과 논리 연산 (0) | 2022.08.01 |
Comments