2026/05 25

컴파일 단계

컴파일 단계 (Compilation)전처리된 소스 코드를 기계어로 변환하는 과정각 소스 파일(.cpp)은 개별적으로 컴파일됨컴파일이 완료되면 각각의 오브젝트 파일(Object File)이 생성됨오브젝트 파일 (Object File)컴파일 단계가 완료되면 생성되는 파일확장자 종류.o.obj운영체제와 컴파일러에 따라 확장자가 달라짐운영체제별 확장자운영체제확장자Linux, macOS (UNIX 계열).oWindows.obj컴파일러별 확장자컴파일러확장자GCC (GNU Compiler Collection).oMSVC (Microsoft Visual C++).obj기계어 변환 과정C++(고급 언어)↓어셈블리어(저급 언어)↓기계어(네이티브 코드)전처리된 소스 코드는 이러한 과정을 거쳐 CPU가 실행 가능한 기계어로 ..

c++/기초 2026.05.20

전처리 단계

전처리 단계 (Preprocessing)컴파일 전에 소스 코드를 가공하는 단계전처리기(Preprocessor)가 #으로 시작하는 전처리 지시어를 처리함.소스 코드의 주석이 제거됨#include, #define, #ifdef 등의 지시어를 처리함실제 컴파일 전에 코드가 치환되고 정리됨전처리 지시어 종류1. #include헤더 파일 포함 지시어#include #include "Player.h"의미해당 파일의 내용을 현재 소스 코드 위치에 그대로 복사함.즉,#include "Player.h"는 실제로는 Player.h 내부 코드가 현재 파일에 삽입되는 것과 같음.목적코드 재사용여러 파일에서 공통 코드를 재사용 가능#include "Math.h"모듈화헤더 파일(.h)에는 선언소스 파일(.cpp)에는 구현으로 분..

c++ 2026.05.20

힙과 스택 영역

힙과 스택 영역동적으로 변하는 메모리 영역나누어진 이유관리 방식이 서로 다르기 때문스택(Stack) 영역자동 관리빠름제한적사용 목적짧게 쓰고 바로 버릴 데이터 저장특징크기가 작음 (보통 MB 단위)Push(넣기), Pop(꺼내기) 방식으로 관리규칙적인 구조라 속도가 빠름힙(Heap) 영역수동 관리유연함상대적으로 느림사용 목적언제 사용이 끝날지 모르는 데이터 저장특징크기가 큼 (RAM 대부분 사용 가능)빈 공간 아무 곳에나 할당 가능복잡한 관리가 필요함오버플로우(Overflow)오버플로우의 종류에는:힙 오버플로우스택 오버플로우가 존재한다.힙은 메모리의 위쪽 주소 방향으로 할당되고,스택은 메모리의 아래쪽 주소 방향으로 할당된다.따라서 두 영역이 서로의 공간을 침범할 수 있다.종류힙이 스택 영역을 침범 → 힙..

c++ 2026.05.19

메모리 4영역

메모리 4영역코드영역데이터 영역힙 영역스택 영역코드(Code) 영역 (Text Segment): 프로그램의 소스 코드가 기계어 형태로 저장되는 영역으로, 읽기 전용(Read-Only)영역 텍스트 영역이라고 부르기도 함. CPU는 코드 영역에 저장된 명령을 하나씩 가져가서 처리하게 된다. 프로그램이 시작하고 종료될 때 까지 메모리에 계속 남아있는다.데이터(Data) 영역 (Data Segment): 전역 변수(Global), 정적 변수(Static)가 저장되는 곳입니다. 프로그램 시작 시 할당되고 종료 시 해제됨. 프로그램의 시작과 함께 할당되며 프로그램이 종료되면 소멸한다.힙(Heap) 영역 (Heap Segment): 사용자가 직접 관리하는 메모리 영역으로, 동적 메모리 할당(malloc 등)에..

c++ 2026.05.19