C++13 매크로란 무엇인가? 매크로(Macro)는 **‘큰 단위, 한 번에 묶은 것’**을 뜻하는 그리스어 makros 에서 나온 말입니다.우리가 흔히 쓰는 micro(아주 작은 단위)의 반대 개념이기도 합니다.즉, 매크로란 여러 작은 작업을 하나의 큰 단위로 묶는 개념입니다. 1. 일상에서의 매크로 사용예를 들어 프로그램을 종료할 때 매번 다음과 같은 반복 작업을 한다고 가정해 보겠습니다.1. 메뉴를 선택2. 저장을 선택3. 프로그램 종료 버튼을 선택 이처럼 반복적이고 단순한 작업이 있을 때, 이를 하나로 묶어 클릭 한 번에 처리하는 방식이 바로 매크로입니다.게임에서도 같은 개념을 쉽게 찾아볼 수 있습니다.Q → W → E → R 이러한 일련의 키 입력을 F5 키 하나로 등록해 실행할 수 있다면 훨씬 편리할 것입니다.정리하면, 매.. 2026. 1. 5. 전방 선언 컴파일러에게 사용하고자 하는 객체 타입만 알려서 컴파일을 가능하게 하는 것을 전방 선언이라고 합니다.코드로 보면 매우 단순합니다class Player; 이 한 줄 코드로 • Player 라는 타입 이름이 존재한다. • 구현은 모른다. • 멤버도 모른다. • 크기도 모른다 그래도 컴파일은 됩니다.결국 전방 선언이라는 것은 헤더 포함 (#include) 을 회피하고, 컴파일에게는 최소한의 타입 정보만을 제공함으로써 결과적으로 컴파일 시간을 절약하기 위한 방법이라고 할 수 있습니다. 단, 여기에는 몇가지 조건이 있습니다. 1. 포인터 멤버나 참조 (가능)class Player;class Enemy{ Player* target; // OK}; 이 경우 포인트의 크기는 주소값이므로 고정이고 Player.. 2026. 1. 5. TCHAR 에 대한 이해 이 글은 윈도우의 역사, 문자 인코딩의 변화, 그리고 TCHAR의 탄생 배경을 함께 다룹니다.내용이 다소 길고 깊기 때문에, 모든 세부를 완벽히 이해하지 않으셔도 무방합니다.다만 전체 흐름을 따라가면, TCHAR가 왜 생겼고 왜 지금은 과거의 유물이 되었는지 자연스럽게 이해하실 수 있을 것입니다. 1. 아스키 코드 시대초기의 컴퓨터 환경에서는 아스키(ASCII) 코드만으로 충분했습니다.아스키는 문자 하나를 **1바이트(8비트)**로 표현하며, 실제로는 다음과 같은 숫자 체계입니다.'A' → 65'B' → 66'a' → 97'0' → 48 즉, 문자는 개념이 아니라 숫자였고, char 하나에 이 숫자를 담아 처리했습니다.이 구조는 영문 환경에서는 매우 단순하고 효율적이었습니다. 2. ANSI와 글로벌 문자.. 2026. 1. 4. const 는 어디에 위치하느냐에 따라 의미가 달라집니다 1. 기본 개념C++ 에서 const 는 값을 고정할 때 사용됩니다.const int x = 10; 여기서 x 는 고정이므로 x 는 10 이 아닌 다른 값을 가질 수 없습니다.x = 11; 이것은 컴파일 오류를 일으키고, 대부분 여기까지는 자연스럽게 받아들입니다. 2. const 의 진짜 의미C++ 에서 const 는 일반적으로 바로 다음에 오는 대상을 고정시킨다는 의미로 해석해야 합니다. 그리고 이 사실을 깨닫는 것은 굉장히 중요합니다. 2-1. 기본 타입에서의 const먼저 가장 단순한 경우부터 보겠습니다.int const x = 10; 이 코드는 말 그대로 x 라는 값 자체를 고정시킵니다.이후에는 어떤 경우에도 x 에 다른 값을 대입할 수 없습니다.보통은 앞에서 보신 것 처럼, 아래와 같은 형태를 .. 2026. 1. 2. 헤더(.h)와 소스(.cpp)를 분리하는 이유 C++에서 헤더(.h)와 소스(.cpp)를 분리하는 이유를 한마디로 정리하면 컴파일 시간 비용을 줄이기 위해서입니다.다른 객체를 사용하기 위해 컴파일러가 알아야 할 것은 그 객체의 타입 정보입니다.객체의 내부 구현은 다른 cpp 파일 입장에서는 알 필요가 없습니다.따라서 컴파일에 필요한 타입 정보만 헤더 파일에 두고, 구현 내용은 cpp 파일로 분리하면 이 헤더 파일을 포함한 다른 소스 파일을 컴파일 할 때 해당 객체의 구현 코드를 함께 처리하지 않아도 됩니다.그 결과, 처리해야 할 코드량이 줄어들면서 전체 컴파일에 낭비되는 시간이 감소하게 됩니다.1. heaer 와 cpp 의 코드 분리 Player.h (타입 정보) #pragma onceclass Player{ public : void M.. 2025. 12. 27. 프로그래밍 언어란 무엇인가? 컴퓨터는 인간의 언어를 이해하지 못합니다.컴퓨터가 실제로 이해할 수 있는 것은 전기 신호, 즉 0과 1로 이루어진 숫자뿐입니다. 01010101 11100010 … 컴퓨터는 이런 형태의 명령만을 직접 처리할 수 있습니다.하지만 사람에게 이런 숫자는 읽기도 어렵고, 어떤 의미인지 파악하는 것도 거의 불가능합니다. 기계어초기 컴퓨터 시대에는 사람이 직접 0과 1을 사용해 프로그램을 작성하기도 했습니다. 이것을 기계어라고 합니다. 하지만 프로그램의 크기가 조금만 커져도 실수가 급격히 늘어났고, 수정이나 유지보수는 사실상 불가능에 가까웠습니다. 이 문제를 해결하기 위해 사람이 이해할 수 있는 형태의 언어가 필요해졌고, 그 결과 등장한 것이 프로그래밍 언어입니다. 프로그래밍 언어프로그래밍 언어는 사람이 읽고 쓰기.. 2025. 12. 21. 이전 1 2 3 다음