C언어/디딤돌 C언어 예제

[C언어 소스] 매크로 함수에서 주의할 점, 괄호 유무 차이 비교

언제나휴일 2016. 11. 26. 13:38
반응형

[C언어 소스] 매크로 함수에서 주의할 점, 괄호 유무 차이 비교


Program.c


#include <stdio.h>
#define MacroAdd(x,y)     x+y
#define MacroAdd2(x,y)   (x+y)
 
#define MacroMul(x,y)    (x*y)
#define MacroMul2(x,y)    ((x)*(y))
 
int main()
{
   
int result = 0;
 
    result = MacroAdd(3,4)*5;
// result = 3+4*5; 로전개
    printf(
"MacroAdd(3,4)*5 결과: %d \n",result);
 
    result = MacroAdd2(3,4)*5;
// result = (3+4)*5; 로전개
    printf(
"MacroAdd2(3,4)*5 결과: %d \n",result);
 
    result = MacroMul(3+2,4)*5;
// result = 3+2*4*5; 로전개
    printf(
"MacroMul(3+2,4)*5 결과: %d \n",result);
 
    result = MacroMul2(3+2,4)*5;
// result = ((3+2)*(4))*5; 로전개
    printf(
"MacroAdd2(3+2,4)*5 결과: %d \n",result);
   
return 0;
}


실행 결과

MacroAdd(3,4)*5 결과: 23
MacroAdd2(3,4)*5 결과: 35
MacroMul(3+2,4)*5 결과: 55
MacroMul2(3+2,4)*5 결과: 100



본문

[디딤돌 C언어] 43. 매크로 구문



반응형