본문 바로가기

프로그래밍/C 기초

[C언어 강좌] #18 - 함수

드디어 함수를 배우는 시간이 왔습니다.

아마 함수라는 단어는 중학교수준만 되도 수학시간에 배우기때문에 이미 익숙하실겁니다.




함수를 배울떄 이런그림 본적 있으시죠?


함수는 무언가를 보내주면 연산을 하고 다시 무언가를 돌려보내줍니다.


수학에서의 함수와는 꽤 차이가 있지만 일단 프로그래밍의 함수도 비슷하게 받아들일수 있습니다.

물론 아무것도 보내지 않고도 실행할수 있지만요.



우리가 지금까지 봐왔던 int main(void)도 함수입니다.

지금까지 제가 예제에서 return 0;을 입력하지 않았지만 원래는 입력해야합니다.

return은 값을 반환하는것입니다. return 0;일경우 함수를 호출한 영역으로 해당 값을 전달합니다.

반환형이 int형이기때문에 return에서 정수형으로 반환해주면 됩니다.


그리고 처음 보이는게 매개변수라는게 있네요. 매개변수라는것은 함수를 호출할때 전달되는 인자를 저장할 변수의 선언입니다.

printf("안녕");을 실행할때 "안녕"을 인자로 넘겨주면 함수에서는 그 인자를 받아서 선언해주는겁니다.

main함수의경우 매개변수가 void라고 적혀있네요. void는 없다는것을 의미합니다. 매개변수로 아무것도 받지 않는것이죠.

함수를 호출할때 전달하는 인자는 여러개도 가능하고 안받을수도 있지만 반환하는 값은 한개만 가능합니다.

물론 리턴값도 반환형도 void로 할수있고 그경우에는 아무것도 반환하지 않습니다.



직접 add함수를 만들어봤습니다.

인자1과 인자2를 더해주면 그 둘을 더해준값을 반환해주는 함수입니다.


인자1로 a를 넘겨주고 인자2로 5를 넘겨줘서 a와 5의 합인 15를 반환해줍니다.

반환된값은 함수를 호출했던 자리에 들어가게되서 printf("%d", 15);랑 같은 기능을 하는 코드가 되었습니다.


이번시간에는 간단하게 함수를 소개하는정도만 했습니다. 다음 강좌부터 함수에 대해 하나씩 자세히 배워봅시다.