69.8번 질문입니다.
, 박 기정님이 작성69.8번 심사문제에서
문의한 코드는 삭제합니다.
여기서 제가 위와 같이
문의한 코드는 삭제합니다.
코드를 제출했는데요 정답이 되었더라고요... 해설을 보니까 해설코드가 이해가 갑니다만 이제는 제가 작성한 코드가 어떻게 정상적으로 작동하는지 의문이 들어서 계속 봤지만 작동이 가능한 이유를 못찾겠습니다. 물론 틀린 코드가 어떻게 맞느냐 질문하는것이 논외일수도 있다만 너무 궁금합니다...
(도장_ 관리자님이 수정함 - 원문 제출일: 2020년 1월 10일, 금요일, 오전 4:40)
Re: 69.8번 질문입니다.
, 도장_ 관리자님이 작성문제를 보면 구조체에서 print 멤버에 출력 함수를 지정하는 문제입니다.
현실에서는 상황에 따라 처리를 달리해야 하는 구현이 필요할 때 사용하는 코드입니다.
여기에서는 간단히 p->print 함수만 리턴하면 해결되는 문제였으므로 print 함수만 리턴하는 것으로 해결할 수 있었고, 심사문제를 우회할 수 있었을 뿐입니다.
예를 들어 다국어 프로그램을 처리할 때
2020-01-10으로 출력하는 국가가 있고, 01-10-2020으로 출력하는 국가가 있습니다. struct date라는 같은 구조체지만, 처리하려는 국가에 따라 출력 형식을 달리해야 할 수 있습니다.
성-이름 순서로 출력하는 국가, 이름-성 순서로 출력하는 국가에 따라서도 출력 형식이 달라집니다.
현실에서는 다양한 print 함수를 작성하고, 필요에 따라 할당하고, 각각의 상황에 맞는 print 함수를 호출하는 예제가 됩니다.
Re: 69.8번 질문입니다.
, 도장_ 관리자님이 작성문제에서는 함수 포인터로 함수를 반환할 수 있느냐라는 문제였고,
함수를 직접 반환해도 같은 결과가 출력되기 때문에 심사는 통과할 수 있었습니다.