잠시 동안 C를 작성하지 않았기 때문에 혼란 스럽습니다. C++에서는 전체 구조체를 복사하지 않기 위해 참조로 전달합니다. 이것은 C에도 적용됩니까? 복사를 피하기 위해 그들을 수정하고 싶지 않더라도 포인터로 전달해야합니까? 두 구조체가 동일한 경우를 확인하는 기능을 위해, 우리는 더 나은함수에서 구조체를 전달하는 방법은 무엇입니까?
int equal(MyRecord* a, MyRecord* b);
을 수행하고 (때문에 포인터의) 비트를 가독성을 저하 말하면
,
또는
int equal(MyRecord a, MyRecord b);
의 성능은 동일합니까?
C 관련 질문 인 것처럼 보였으므로 C++ 태그를 제거했습니다. – Shoe
첫 번째 경우에는 struct의 주소를 전달하거나 MyRecord에 포인터 유형을 typedef하고 두 번째 예제를 사용할 수 있지만 참조로 전달하려면 다음과 같이 주소를 전달해야합니다. 인수 – Andrea
그리고 필요하다면''const'''를 사용하여 기밀 변경을 막을 수 있습니다. –