C에서 값을 교환하는 가장 빠른 방법은 무엇입니까? 두 개의 정수를 바꾸고 싶고,이 두 구현 중 어느 것이 더 빠를 지 알고 싶습니다. 임시 변수를 사용하는 명백한 방법 : void swap(int* a, int* b) { int temp = *a; *a = *b; *b = temp; } 또는 대부분의 사람들이 본 xor 버전 : void swap(int* a, int* b) { *a ^= *b; *b ^= *a; *a ^= *b; } 첫 번째는 추가 레지스터를 사용하는 것처럼 보이지만 두 번째는 세 번의로드 및 저장을 수행하고 첫 번째는 각각 두 번만 수행합니다. 누군가가 더 빠른 이유와 이유를 말할 수 있습니까? 더 중요한 이유. a와 b가 동일한 주소를 가리키면 XOR 메서드가 실패합니다. 첫 번째..