c언어 - 매크로

매크로 정의하기
#define은 특정 값에 이름을 붙이거나 코드를 조합하여 함수 형태로 만들 수 있습니다. 매크로를 사용하면 전처리기를 거쳐 내부적으로 소스 코드가 일괄 변환됩니다.
// 값을 매크로로 정의            // 10을 COUNT로 정의
#define 매크로이름 값            #define COUNT 10 

// 여러 줄을 매크로로 정의        // printf 세 줄을 PRINT_NUM3으로 정의
#define 매크로이름 코드1 \       #define PRINT_NUM3(x) printf("%d\n", x); \
                  코드2 \                             printf("%d\n", x + 1); \
                  코드3                               printf("%d\n", x + 2);

// 값을 붙이는 매크로 정의        // a와 b를 붙이는 CONCAT 매크로 정의
#define 매크로이름(a, b) a##b    #define CONCAT(a, b) a##b

함수 모양의 매크로 정의하기
// 함수 모양으로 매크로 정의      // 숫자를 출력하는 PRINT_NUM 매크로 정의
#define 매크로이름(x) 함수(x)    #define PRINT_NUM(x) printf("%d\n", x)

#define 매크로이름(x) 코드조합 // do while (0)을 이용하여 매크로 안에서 변수 선언.
                                // if, else에서 컴파일 에러 방지
                                #define SWAP(a, b, type) do { \
                                    type temp; \
                                    temp = a;  \
                                    a = b;     \
                                    b = temp;  \
                                } while (0)

매크로 해제하기
// 정의한 매크로 해제            // COUNT 매크로 해제 
#undef 매크로                   #undef COUNT


공부 : c언어 코딩도장

댓글