늘 겸손하게

Swap macro(스왑 매크로)/C,C++ 본문

Programming/C & C++

Swap macro(스왑 매크로)/C,C++

besforyou999 2021. 1. 30. 15:44

 

1
#define swap(type, x , y ) do{ type t; t = x; x = y; y = t; }while(0);
cs

 

 

두 변수의 값을 교환하고 싶은 경우, 보통은 함수를 만들어 교환했습니다.

 

예로 정수형 변수 두 개의 값을 서로 바꾸고 싶을때

 

 

 

포인터를 이용해 함수를 만들어 교환했습니다.

 

 

하지만 위 함수는 '정수형' 변수들만 변환이 가능하기 때문에

 

다른 타입의 변수들을 교환하고 싶으면 또 함수를 따로 만들어야 합니다.

 

 

대략 이런식으로 말이죠

 

하지만 이 방식은 줄이 길어지고, 무엇보다도 '귀찮습니다'.

 

 

이를 해결하기 위한 방법이

 

스왑 매크로 입니다.

 

 

사용 방법은 간단합니다.

 

바로 위의 스왑 매크로를 코드 맨 위에 넣어주고

 

 

교환하고 싶은 두 변수의 타입을 첫 번째 인자로

 

교환하고 싶은 두 변수를 각각 두 번째 세 번째 인자로 넣어주면 됩니다.

 

결과 값

참 쉽죠?