Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어에서 여러 줄 매크로 작성하는 방법

이 글에서는 C 언어에서 여러 줄 매크로(multiline macro)를 작성하는 방법을 알아보겠습니다.

여러 줄 매크로는 함수처럼 정의할 수 있지만, 일반적인 함수와 달리 다음과 같은 규칙을 반드시 지켜야 합니다.

여러 줄 매크로 작성 시 주의사항

  • 매크로의 각 줄이 끝날 때마다 반드시 역슬래시(\) 문자를 붙여야 합니다. 이는 전처리기(preprocessor)에게 다음 줄과 현재 줄이 하나의 명령으로 이어져 있음을 알려주는 줄 연결(line continuation) 기능입니다.
  • 중괄호({})를 사용해 매크로 본문을 감싸고 그대로 }로 끝내면 컴파일 오류가 발생할 수 있습니다.
  • 따라서 본문 전체를 소괄호( )로 한 번 더 감싸주는 것이 안전합니다. 소괄호로 감싸면 여러 문장을 하나의 표현식처럼 취급할 수 있어 오류를 방지할 수 있습니다.

예제 코드

아래 프로그램을 통해 여러 줄 매크로의 실제 사용 방법을 확인해 보세요.

#include<stdio.h>
#define PRINT(x, str) ({\
    printf("The number %d", x);\
    printf(" is ");\
    printf(#str);\
    printf("\n");\
})
int main() {
    int x = 10;
    if(x % 2 == 0){
        PRINT(x, EVEN);
    }
}

실행 결과

The number 10 is EVEN

위 예제에서 PRINT 매크로는 네 개의 printf 문으로 구성되어 있으며, 각 줄 끝에 역슬래시(\)가 붙어 있습니다. 또한 본문 전체가 ({ ... }) 형태로 감싸져 있어 여러 문장을 하나의 블록으로 안전하게 처리할 수 있습니다. 매크로 인자 #str은 문자열화(stringize) 연산자로, 전달된 인자를 문자열 리터럴로 변환하여 출력하는 역할을 합니다.