예를들어 name 함수가 id->name을 반환하는 함수라면
printf("이름은 %s입니다.", name(id->name));
이렇게 쓰는 거 보다
char *yname = name(id->name);
printf("이름은 %s입니다." yname);
이렇게 쓰는 게 낫냐? 가독성 측면보다 시스템 자원 절약 차원에서ㅇㅇ
name 함수는 코드 내에서 계속 써야되는데
보니까 변수 대신 name 함수를 쓰면 name 함수를 계속 실행하고
변수로 쓰니까 name함수는 한번만 실행하고 그 값을 기억해뒀다가
필요할때 쓰면 저장된 값을 불러와서 쓰더라고
시스템 자원 측면에서 보면 변수 사용해서 쓰는 게 나음?
근데 이런 코드가 쌓이고 쌓이다보면 메모리값 존나 차지할거같은데 괜찮나
절약 차원이면 전자가 더 낫지않나. 포인터변수도 아무튼 메모리가 할당되는거니까 함수에서 바로 반환하게되면 더 나은거아님? 그리고 함수도 다시 호출하지 않는 이상 반환하면 계속 실행되는게 아니고 끝남
그리고 전역변수나 정적 지역변수가 아니라면 포인터든 함수든 블록이 종료되면 어차피 메모리는 회수해 갈텐데
해당 댓글은 삭제되었습니다.
ㄴㄴ
그리고 잘못 알고 있는게 yname은 포인터 변수라서 값을 가져오는게 아니고 저장된 변수의 주소를 가리키고 있는 상태임. 만약 저 코드내에서 메모리 효율을 높이고 싶으면 애초에 매개변수로 포인터변수를 선언하고 반환하지 않고 외부함수 내에서 처리하면 그게 더 빠름