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
반응형
'Application > MFC' 카테고리의 다른 글
[MFC] 단일 문서 상단 메뉴 체크 상태 변경 (0) | 2022.12.16 |
---|---|
[MFC] Escape(Esc) Or Enter 입력시 Form 닫히는 문제 해결법 2 (0) | 2022.11.30 |
[MFC] 파일 쓰기 한글 깨짐 문제 (BOM) (0) | 2022.11.23 |
32Bit 프로그램 2GByte 메모리 제한 해제 (0) | 2022.11.09 |
[MFC] Escape(Esc) Or Enter 입력시 Form 닫히는 문제 해결법 (0) | 2014.08.13 |