태그: preprocessor
5편
-
Sass(SCSS) 활용: 변수, 중첩, Mixin, 함수, @use 모듈, Partials와 빌드 연동
Sass(SCSS)의 변수·중첩·Mixin·함수로 반복되는 CSS를 줄이고, @import 대신 @use로 모듈을 나누는 방법과 Partials 구성, Webpack·Vite 연동, 버튼 컴포넌트까지 포함한 작은 디자인 시스템 예제를 다룹니다.
-
C++ 전처리기 제대로 쓰기: #define과 #ifdef 실전 패턴
redefinition 에러, Windows와 Linux API 분기, 디버그 빌드 전용 로그, __FILE__과 __LINE__을 넣은 assert처럼 전처리기가 필요한 상황을 예제로 풀고, 가변 인자 매크로와 확장 순서, 인자에 쉼표가 든 매크로의 함정을 설명합니다.
-
C++ 전처리 지시자: 매크로 부작용, #if·#ifdef 조건부 컴파일, -E로 결과 확인
#define 매크로가 인자를 두 번 평가하거나 괄호가 빠져 계산이 틀어지는 부작용을 예제로 보여주고, #if와 #ifdef로 플랫폼별 코드를 나누는 법, 문자열화 연산자, #pragma, 전처리 결과를 -E로 확인하는 방법까지 전처리 지시자를 설명합니다.
-
C++ 매크로 고급 기법: X-Macro, 문자열화(#)·토큰 붙이기(##), 가변 인자 매크로
C++ 전처리기 매크로의 고급 기법을 정리합니다. X-Macro 패턴, 문자열화(#)·토큰 붙이기(##), 조건부 컴파일, 그리고 괄호 누락·부작용·세미콜론 문제처럼 매크로가 constexpr/템플릿보다 위험한 이유를 다룹니다.
-
#ifndef vs #pragma once: C++ 헤더 가드의 동작 원리와 선택 기준
#ifndef 가드와 #pragma once가 전처리기에서 각각 어떻게 중복 포함을 막는지 비교하고, 가드 매크로 이름 충돌, 같은 파일을 가리키는 여러 경로에서 pragma once가 헷갈리는 경우, 순환 포함 문제와 C++20 모듈과의 관계를 설명합니다.