본문 바로가기

전자 공학/C언어 C++

[C언어 독학하기] 13. 함수

반응형

 

 

 

안녕하세요. 취업한 공대누나입니다.

오늘은 함수에 대해 공부해보도록 하겠습니다.

저는 처음에 함수에 대한 개념을 잘 이해하지 못했었는데요.

이제는 나름? 자유자재로 사용할 수 있게 되었습니다.

 

함수는 사실 같은 일을 반복하기 싫을 때, 계속 같은 코드를 쓰기 싫을 때

아주 유용하게 사용할 수 있습니다.

 

예시로 덧셈을 하는 함수를 만들어서 설명을 해보도록 하겠습니다.

우선 이 함수의 출력 형태는 int형입니다. (결과 값이 정수형이게 됩니다.) 

이름은 add 두 정수(a,b)를 입력받아서 그 두수를 더하여 return해주게 됩니다.

중괄호 안에 함수가 수행해야 할 내용을 적어주면 됩니다.

 

이렇게 한 것을 우리는 함수를 정의했다고 말합니다.

함수를 정의한 뒤 어떻게 사용할까요?

 

정의해놓은 함수를 사용할 때에는 위와 같이 호출을 하면 됩니다.

우리는 선언을 할 때 int add (int a, int b)와 같이 선언을 했습니다. 

앞에 int는 출력 형태를 말해주니 호출을 할 때는 따로 붙이지 않습니다.

그냥 결과 값이 int형이구나라는 걸 인지하고 있어주시면 됩니다.

 

add(3,5)와 같이 덧셈하고 싶은 두 인자를 써주시면 됩니다.

또한 return되는 값이 있으므로 그 값을 sum에 저장해둔 것입니다.

 

예시를 조금 더 들어볼까요?

 

이번에는 딱 하나만 입력을 받습니다.

함수의 기능을 보면 무조건 10을 더하도록 설계가 되어 있네요.

입력 받는 형태가 하나이니 우리도 입력을 하나만 써주면 됩니다.

 

이번엔 조금 다른 형태?로 예제를 보여드리도록 하겠습니다.

우선 출력 형태는 void입니다.

void는 리턴이 없는 자료형을 뜻합니다.

따로 돌려줄게 없다라는 뜻이 되겠지요.

 

또한 입력받는 정수나 문자등이 없는 것을 확인할 수 있습니다.

이럴 때는 위와 같이 입력 형태에 (void)라고 적어주시면 됩니다.

함수를 호출할 떄도 마찬가지로 입력할 것이 없으므로 비워두시면 됩니다.

그래서 함수를 호출하는 형태가 error()가 되지요.

 

 

이번에는 double형으로 출력되는 average라는 함수를 만들어 보았습니다.

세 개의 값을 받아서 평균내는 함수입니다.

출력이 double형이므로 main 함수에도 리턴된 값을 받을 score라는 double형 변수를 선언해줍니다.

함수도 average(50,100,75)와 같이 호출하나 것을 확인할 수 있습니다.

여러 개의 형태로 연습을 해 보았는데 이해가 잘 되셨으면 좋겠습니다.

 

 

잠시 주의해야 할 점이 있는데요.

함수가 호출하는 곳 보다 밑에 정의되어 있으면 컴파일러는 다음과 같이 에러를 띄우게 됩니다.

 

하지만 아예 방법이 없는 것은 아닌데요.

 

함수를 밑에 정의하고 싶다 하시면

 

이렇게 위에다가 따로 함수의 원형을 선언해주시면 됩니다.

위에 int add(int a);가 보이시죠?

 이렇게 되면 add함수가 있구나!라는 것을 알게 되어 동작이 정상적으로 수행되는 것입니다.

 

 

처음에는 함수라는 개념이 잘 이해가 안될 수도 있습니다.

언제든 댓글로 이해 안되시는 부분을 말씀해주시면 도와드리기 위해 노력하겠습니다.

반응형