C++
-
C++ 모듈 (Module, C++20)C++ 2025. 3. 25. 01:12
헤더 파일 방식의 문제점C++에서는 전통적으로 #include를 사용하여 헤더 파일을 포함하는 방식을 사용한다. 하지만 이 방식에는 여러 가지 문제가 있다. 1) 중복된 파싱 비용 (Compile-time Overhead)헤더 파일은 여러 번 포함될 수 있으며, 각 번역 단위(Translation Unit)마다 같은 헤더 파일이 반복적으로 파싱됨.프로젝트가 커질수록 빌드 시간이 기하급수적으로 증가함.2) 전처리기의 한계 (Preprocessor Limitations)#include는 단순한 텍스트 복사-붙여넣기 방식으로 동작함.#define, #ifdef 등의 전처리 매크로로 인해 의도하지 않은 코드 변화가 발생할 수 있음.네임스페이스와 달리 전역 네임스페이스 오염(Global Namespace Poll..
-
C++ 컴파일 과정C++ 2025. 3. 24. 15:49
#include "Vector.h"void Vector::someFunction() { // 구현 내용}add: mov eax, edi add eax, esi ret컴파일은 크게 네 단계로 분류된다. 전처리(Preprocessing) → 컴파일(Compiling) → 어셈블(Assembling) → 링크(Linking) 1. 전처리전처리기는 #include, #define, #ifdef 등의 전처리 지시문을 처리한다.#include #define PI 3.14int main() { std::cout 가령 이런 코드가 있을 때, #include 된 iostream 전체가 iostream 헤더 파일에 있는 내용으로 치환되고, 코드 내의 PI도 전부 3.14로 치환된다.// 헤더..