err_t server_rx(rx_packet_t *rx_packet, char* rx_str){
err_t= -1;
}
구조체 자체를 돌려주는 함수.
구조체의 크기가 크기 때문에 함수 호출시 속도가 떨어진다.
rx_packet_t server_rx(String rx_str) {
}
이런경우 구조체 포인터를 받는것이 낫다.
err_t insert(persont_t* p) {
return ret;
}
구분 | 값에 의한 전달 (Pass by Value) | 참조에 의한 전달 (Pass by Reference) |
---|---|---|
전달 방법 | 인자의 복사본 전달 | 인자의 주소 (포인터) 전달 |
원본 값 변경 여부 | 함수 내에서만 변경, 원본 값은 변경되지 않음 | 원본 값이 변경됨 |
사용 예시 | 기본 데이터 타입 (int, float 등) | 포인터 사용 시, 큰 데이터나 구조체 등 |
장점 | 원본 데이터 보호, 간단한 데이터 처리 | 메모리 효율적, 큰 데이터 처리 용이 |
단점 | 큰 데이터에 비효율적, 성능 저하 가능성 | 원본 데이터 수정 위험, 포인터 실수 가능 |