:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
10/01/12 18:27
우선 기본적으로 oop로 modulation을 구현하는 것이 어떤 의미인지
특히 리턴 밸류와 관련해서는 캡슐화의 의미를 되새겨 보셔야 합니다. 그리고 위와 같은 경우에는 함수에 parameter를 넣을 때 call by value인지 call by reference인지에 대해서도 고민이 있으셔야 정확한 프로그래밍을 하실 수 있습니다.
10/01/12 18:29
맞는지 확신은 안서지만... 일단 보니까 함수와 프로시저의 차이점에 대한 이해가 필요할 것 같네요.
함수는 입력값을 넣으면 출력값이 나오는 것을 말하고 프로시저는 어떠한 명령을 수행하기 위한 동작을 정의한 것이라 보시면 됩니다. 함수는 함수 타입을 명확히 적어야 하고(int, float 등등) 프로시저는 void로 지정하시면 됩니다. 함수는 리턴값(즉 출력값)을 가져야 하고 프로시저는 출력값이 없어도 됩니다. main에도 int값을 넣어주는게 좋다고 하던데 정확한 이유는 모르겠네요. 아마 운영체제에서 함수로 처리해서 그렇지 않을까 예상해봅니다.
10/01/12 18:41
간단히 설명드리자면 함수가 돌아가고 나서 결과값을 반환해야 할 필요가 있으면 함수 이름 앞에 타입을 선언한 다음에 return을 써서 결과값을 원래 돌아가고 있는 메인 함수로 돌려주는겁니다. (int로 선언한 함수에서 char타입을 반환하면 망하겠죠. 선언한 함수에서 반환하는 값은 선언한 타입과 일치해야 합니다.)
값을 반환할 필요 없이 본문의 프로그램처럼 스왑하고 그냥 끝내도 된다면 void를 쓰는거구요. 예를 들어 rand()같은 함수는 결과값을 반환하는 함수라고 보시면 됩니다. 이 함수는 결과값을 왼쪽에 변수에 입력하게 되어있죠. 결과값을 반환하지 않고 자기가 알아서 뚝딱 끝내는 함수는 글 올리신 분이 만드신 swap함수같은 거구요. 많이 짜보시면 감이 올겁니다.
|