C++18 전방 선언 컴파일러에게 사용하고자 하는 객체 타입만 알려서 컴파일을 가능하게 하는 것을 전방 선언이라고 합니다.코드로 보면 매우 단순합니다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. C++ 소개 C++ 는 오래된 언어지만, 지금도 여전히 다양한 분야에서 사용되고 있는 프로그래밍 언어입니다.이 글에서는 C 언어에서 출발해 C++이 어떻게 탄생했고, 어떤 과정을 거쳐 현재 버전까지 발전해 왔는지 대략적으로나마 정리해 보았습니다. 1. C 언어C 언어는 빠른 언어입니다.반면, 개발자가 직접 관리해야 할 것들이 많고, 프로그램의 규모가 커질수록 C 만으로는 감당하기 어려운 한계가 있습니다. 2. C++ 탄생이런 배경에서 C++은 1980년대 초, C 언어를 기반으로 성능은 그대로 유지하면서 객체 개념을 도입하고 클래스와 상속 개념을 추가한 언어로 등장했습니다. 대형 소프트웨어 개발을 염두에 두고 설계된 언어입니다. 3. C++98 표준1998년에는 C++의 첫 공식 표준인 C++98이 발표되었습니다.그.. 2025. 12. 11. 이전 1 2 3 다음