전처리기 - C언어

홍성우·2023년 5월 19일

자료구조 (C언어)

목록 보기
10/15

사용자 정의 함수 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

즉, 매크로 함수는 함수의 장점을 그대로 유지하고도 성능을 향상시킨것

profile
제 블로그를 방문해 주셔서 감사합니다

0개의 댓글