본 게시글은 제가 공부하면서 정리한걸 토대로 글을 씁니다.


시작하기전에 함수 비유 예시를 먼저 보고 진행할겁니다.

3x + 4 = y (x는 입력받고 y는 입력받은값을 토대로 연산후 계산값입니다.)

x에다가 2를대입해봅시다.

3*2 + 4 = y

y값이 뭔지 아시겠죠?

함수도 이것과 비슷합니다.

(그림으로 표현했을때)

빨간색선은 함수 전체를 통틀어 만들어진함수,실행가능한 함수를 일컫고 이를 함수의 정의 라고합니다.

파란색선은 인자의 전달이라고 합니다. 인자의 전달은 함수의실행을 명령할때 전달하는 입력값,입력받는 x는 '인자'가 됩니다.

이때 인자의전달은 함수의호출과 동시에 발생합니다.

함수의 호출은 함수를사용할려고 코드를 쓰는것을 말하고요 add(3) 이런식으로..


함수는 다음과 같은 형태로 만들면 됩니다.

출력형태 함수이름 입력형태

{

함수의 몸체

}

예를 들어 보자면

int main (void)

{

printf("hello world");

식으로요

이때 출력형태는 반환형(return type)이 됩니다. 출력형태가 곧 결과물 출력의 형태입니다.

  1. int add(int num1,int num2){

  2. int result = num1 + num2;

  3. return result; //정수의형태로 반환하면서 출력한다.

  4. }

  5. int main(void)

  6. {

  7. int a=2,b=3;

  8. printf("%d",add(2,3)); //2+3해서 5가출력됩니다.

  9. return 0;

  10. }

객체지향프로그래밍언어를공부하다가 절차지향을 공부해서 main함수 }밑에 함수를 만들어도 가능한지 알았는데

아니더라고요. 절차지향에서는 위에서 아래니 위부터 시작하면 add함수가 정의되어있으니 에러가 나지 않았던거고요.

반대로 add함수의정의가 밑에있었으면 에러가 날것입니다.

return문의 의미

return문은 2가지의미가 있습니다.

1.함수를 호출한 영역으로 전달(반환)

2.실행중인 함수종료

printf함수에서 add(2,3)을 하나의 인자로 생각하여서 add함수 호출후 호출한영역으로 전달(반환)되었고요 동시에 실행중인 함수를 종료했습니다.

main함수에서는 실행중인 함수 종료만 일어났습니다.

댓글을 달아 주세요