[C++] 매크로 (#define)

오늘 날씨는 야옹·2023년 3월 10일
0

C++

목록 보기
5/8

#define 선행처리 지시문에 인수로 함수의 정의를 전달함으로써, 함수처럼 동작

#include <stdio.h>
#define SUB(X,Y) X-Y
#define PRT(X) printf("계산 결과는 %d입니다.\n", X)  

int main(void){
    int result;
    int num_01 = 15, num_02 = 7;  

    result = SUB(num_01, num_02);
    PRT(result);
    return 0;
}  

C언어에서 가져온 개념인 듯하다
함수처럼 보여도 함수와 다름

#include <stdio.h>
#define SQR(X) X*X
#define PRT(X) printf("계산 결과는 %d입니다.\n", X)  

int main(void){
    int result;
    int x = 5;  

    result = SQR(10);
    PRT(result);
    result = SQR(x);
    PRT(result);
    result = SQR(x+3);
    PRT(result);
    return 0;
}  

계산 결과는 100입니다.
계산 결과는 25입니다.
계산 결과는 23입니다.

(5+3)*(5+3) 으로 처리하는 게 아니라
5+3*5+3 으로 처리했기 때문

출처 http://www.tcpschool.com/c/c_prepro_macroFunc

0개의 댓글