더북(TheBook)

Note #define

#define은 다음과 같은 형식으로 매크로(macro)를 정의하는 전처리기 지시문입니다. 매크로는 소스 코드 안에서 값을 대체해 사용하는 문자열을 의미합니다.

형식

#define 매크로 대체상수(또는 표현식)

매크로는 코드에 직접 정의할 수도 있고 C 언어에 내장된 매크로를 불러와 정의할 수도 있습니다. 여기서 사용한 _CRT_SECURE_NO_WARNINGS는 내장 매크로로, 보안 경고를 사용하지 않도록 설정합니다.

define을 이용하면 전체 소스 코드 내 매크로를 일괄적으로 대체상수로 치환하게 되므로 필요 시 대체상수의 값을 한 번만 변경하면 모든 곳에 손쉽게 변경 사항을 적용할 수 있습니다. 예를 들어, 다음과 같이 간단한 연산을 수행하는 매크로 함수도 만들 수 있습니다.

#include <stdio.h>
#define ADD(x1, x2) (x1 + x2) // 값을 2개 입력받아 서로 더하는 매크로 함수

int main(void) {
    int result = ADD(10, 20); // (10 + 20)
    printf("%d\n", result); // 30
    return 0;
}

이렇게 작성하면 ADD(10, 20)이라는 코드를 (10 + 20)으로 치환하게 됩니다. 매크로 함수는 자료형에 독립적이기 때문에 ADD(10.1f, 20.2f)와 같이 실수 연산도 할 수 있습니다. 또한, 전처리기에 의해 단순히 치환되는 방식이라서 실행 속도가 향상됩니다. 그래서 예제와 같이 간단한 연산을 하는 함수가 필요하면 매크로 함수의 사용을 고려해 볼 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.