전처리기 지시어는 컴파일되기 전 소스코드를 단순치환(substitution)하는 것이다.


매크로 #define

object-like

function-like : 괄호를 많이 치자.

여러 행은 \로 구분.

장점 : 단순치환이라 함수호출시의 스택이나 인자생성 등의 비용을 절약

단점 : 정의하기 까다롭고, 디버깅하기 힘듬

#undef


조건부 컴파일용

#if... #endif

#ifdef... #endif

#ifndef... #endif

#else, #elif

#if defined(   )


매크로 함수의 매개변수 

#define    STR(ABC)    #ABC        //매개변수를 문자열로 치환

#define    STNUM(Y, S, P)    Y##S##P    //별개의 매개변수를 하나로 합침


미리 정의된 매크로

__FILE__

__TIME__

__DATE__

__LINE__

#line    1    "aaa.c"    // line과 file의 재설정


컴파일러 설정

#pragma : 컴파일러에 따라 지시어가 다름



출처 : 난 정말 C PROGRAMMING을 공부한 적이 없다구요

'프로그래밍 > C, C++ 공부' 카테고리의 다른 글

C에서의 파일 입출력  (0) 2018.02.23
함수 포인터  (0) 2018.02.21
C의 문자열 관련 함수들  (0) 2018.02.21
템플릿을 사용한 컴파일 시간 배열  (0) 2018.02.19
문자열 상수는 어디에 저장될까?  (0) 2018.02.18