CPP 48

cpp 데이터 TIP

1. 변수의 유효범위 [스택 영역]: { } 중괄호의 범위가 생존 범위 변수의 이름이 겹칠 때, 변수의 유효범위를 알면 어떤 문제가 생겼는지 알 수 있다. 2. 연산 우선순위 bool isEvenOrDivBy3 = ((hp % 2) == 0) || ((hp % 3) == 0)); 연산 우선순위가 애매하다 싶을 때, 위 예시처럼 괄호를 이용하면 간단하다. 3. 타입 변환 int hp = 20; // 타입 교체 short hp2 = hp;// (short)가 생략 : (short) hp float hp3 = hp; unsigned int hp4 = hp; 범위가 큰 타입에서 작은 타입으로 교체할 경우 문제가 생긴다. 특정 비트 데이터가 짤린 상태로 저장될 수 있기 때문이다. 정수 -> 실수로 변환할 때는 정..

cpp const와 메모리 구조

2021.08.21 - [CPP공부] - cpp 비트 연산과 비트 플래그 상수 (const) 이전글을 보면 flag 값이 계속 변경된다. 하지만 상태이상은 변하지 않는 변수이기 때문에 상수화해야 코드를 수정할 때 편하다. 즉, 한 번 정해지면 절대로 바뀌지 않는 값들을 상수화한다. // const를 붙이면 초기값이 있어야 한다. const int AIR = 0; const int STUN = 1; const int POLYMORPH = 2; const int INVINCIBLE = 3; 메모리 구조 변수가 저장되는 데이터 영역의 구조 // 함수 밖은 [데이터 영역]에 저장 // .data 영역 (초기값이 있는 경우) int a = 2; // .bss 영역 (초기값이 없는 경우) int b; // .rod..

cpp 비트 연산과 비트 플래그

비트 연산 비트 단위의 조작이 필요할 때 사용한다. ~ : bitwise NOT 단일 숫자의 모든 비트를 대상으로 0은 1, 1은 0으로 뒤바꾼다. 0000 0010 -> 1111 1101 & : bitwise AND 두 숫자의 모든 비트 쌍을 대상으로 and 연산을 한다. 0100 1100 & 0110 1001 = 0100 1000 | : bitwise OR and 연산과 같은 방식으로 연산한다. ^ : bitwise XOR XOR 연산의 특징 같은 두 숫자에 xor 연산을 하면 모든 bit가 0이 된다. 하나의 숫자를 두 번 xor 연산을 하면 원래 bit로 되돌아온다. 1100 0100 >> : 비트 우측 이동 비트열을 N만큼 오른쪽으로 이동 오른쪽의 넘치는 N개의 bit는 버린다. 새로 생성되는 ..

Visual Studio 유용한 단축키

계속 수정하면서 추가할 예정 만약 파일 관련 단축키가 먹히지 않고 화면 왼쪽 상단에 한글이 입력되서 나온다면, 당황하지 말고 현재 언어를 영어로 바꾸자. 주석 주석처리: ctrl + k + c (Comment) 주석해제: ctrl + k + u (Uncomment) 빌드 솔루션 빌드: ctrl + shift + b (실행하지 않고 코드에 문제가 있는지 확인) 파일 파일 이름변경: f2 가독성 #pragma region 영역 제목 접었다 펼쳤다 할 수 있는 유용한 기능 #pregma endregion 모든 함수 접기: ctrl + m + o 모든 함수 펼치기: ctrl + m + l 어셈블리 어셈블리 언어로 코드를 보고 싶을 때: ctrl + alt + d ctrl + f5 로 디버깅 후에 단축키를 사용해..

cpp 문자와 문자열

문자 char : 알파벳 / 숫자 문자를 나타낸다. wchar_t : 유니코드(UTF16) 문자를 나타낸다. 여기서 char 도 bool 타입과 마찬가지로 정수지만, 문자 의미를 나타내기 위해 사용한다. char ch = 97;// ASCII 코드에서 97은 a를 나타낸다. ASCII(영어전용)는 검색하면 잘 나와있다. 이런 식으로 숫자를 이용해서 문자를 나타내려면, 검색을 하거나 미리 외울 필요가 있다. char ch1 = 'a'; char ch2 = '1';// ASCII = 49번, 문자 1을 나타냄 그래서 위처럼 작음 따옴표를 이용해서 문자를 표현한다. ASCII코드는 영어만 사용할 경우 유용하다. 하지만 요즘 시대에는 언제 다른 나라에 서비스할지 모르기 때문에 적합하지 않다. 글로벌 시대에 맞는..