Application/MFC

[MFC] 한줄로 Swap 하기

devsalix 2014. 8. 13. 15:27
728x90

보통 Swap을 할때 함수를 만들어서 포인터 인자값으로 넘겨서 깊은복사를 하는 반면

지금 설명하는 Swap의 경우 "^" 연산자를 통해서 공식을 만들어 Swap을 할수 있다는것을 알았다.

일반적인 함수의 경우

#include <stdio.h>

void Swap(int *, int *);

int main(void){
     int a, b;

     a = 5;
     b = 10;

     Swap(&a, &b);

     printf("%2d %2d", a, b);

     return 0;
}

void Swap(int *a, int *b){
     int Temp = *a;
     *a = *b;
     *b = Temp;
}

 

이런식으로 함수를 따로 만들어 쓰는 반면 지금 설명하려는 Source는 한줄로 가능하다.

#include <stdio.h>

int main(void){
     int a, b;

     a = 5;
     b = 10;

     //Swap(&a, &b); 대신
     a = a ^ (b = b ^ (a = a ^ b));

     printf("%2d %2d", a, b);

     return 0;
}

 

이렇게 가능하다.



출처 - 강원대학교 컴퓨터-정보통신공학부 소프트웨어 시스템 연구실

728x90
반응형