C언어 기초 매개변수로 함수 전달하기
C언어 기초 매개변수로 함수 전달하기
지난 글에서 C언어 기초 중에서 함수 포인터에 대해서 알아봤었는데요. 함수의 이름도 메모리상의 주소를 저장하는 변수라고 정리했었습니다. 그렇다면 다른 포인터와 마찬가지로 이 이름을 매개변수로 던져주면서 호출되는 곳에서는 그 값을 포인터로 받아서 프로그램을 실행할 수 있겠죠?
■ 이번 글에서는 그 내용을 확인하는 예제를 만들면서 정리해볼 건데요. 어떤 함수를 호출하면서 int 값 두 개와 이름을 매개변수로 넘겨주고 호출되는 곳에서는 그 값들을 받은 뒤에 이름과 값을 반환해서 해당 함수를 다시 호출하고 매개변수로 들어온 int 값을 재전달 하는 형식입니다. 좀 복잡한가요?ㅠ.ㅠㅎ 바로 예제를 볼게요.
▲ main()에서 aaa를 호출하면서 200, 100, 이름 bbb와 ccc를 순서대로 전달하고 있습니다. 이렇게 넘겨주면 각각의 주소 값이 넘겨지겠죠? 그리고 aaa는 이 값들을 받은 후 다시 반환하면서 해당 이름의 함수를 호출하고 있습니다. 때문에 전달된 이름에 따라서 호출되는 함수가 달라지게 됩니다. 가장 먼저 두 수의 합이 출력되고 차가 출력되겠죠? 프로그램을 실행해서 확인해보고 마무리하겠습니다.
▲ 조금 복잡해 보일 수도 있지만 aaa에서 매개변수로 이름을 받을 수 있다는 것과 그 값을 반환해서 다른 녀석을 호출한다는 원리만 알면 그리 어렵지 않게 이해할 수 있을 것입니다. 서로 다른 역할을 하는 함수 수십 개를 만들어놓고 처리할 데이터와 이름을 넘겨주면 유동적인 프로그램을 만들 수 있을 것입니다.
이렇게 해서 C언어 기초 중에서 함수를 매개변수로 넘겨주는 예제를 만들어봤습니다. 수고하셨어요.