사용자 정의 함수 vs 매크로 함수
// 직접 만든 함수
printf("%d\n", Add(3, 4));
003918C1 push 4
003918C3 push 3
003918C5 call _Add (03910B4h)
003918CA add esp,8
003918CD push eax
003918CE push offset string "%d\n" (0397B30h)
003918D3 call _printf (03910D2h)
003918D8 add esp,8
// 매크로 함수
printf("%d\n", ADD(3, 4));
003918DB push 7
003918DD push offset string "%d\n" (0397B30h)
003918E2 call _printf (03910D2h)
003918E7 add esp,8
디스어셈블리어 코드 상 차이가 발생한다.
// 직접 만든 함수에서는
Add함수를 호출한다. -> 오버헤드 발생
// 매크로 함수
Add()함수 호출 x -> 오버 헤드 발생 x
즉, 매크로 함수는 함수의 장점을 그대로 유지하고도 성능을 향상시킨것