만약 이 게시글이 함수 시리즈의 처음이라면 아쉽다 앞에 두개를 보고 와라!!

2018/03/10 - [C] - 함수란...?

2018/03/10 - [C] - 함수라는 것에 관한 간단한 고찰 - 1

지난 시간에 덧셈연산을 밖으로 빼서 연산과정을 한번만 작성한 것으로 생략하였습니다.

그리고 이번 시간에는 두 번째 유형을 하려고 합니다.

일단 전 시간에 했던 코드를 전부 불러오도록 하겠습니다.

1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
int duhagi(int num1, int num2) {
      return num1+num2;
      }
int main (void) {
      int result;result = duhagi(3457);
      printf("덧셈결과 그 첫번째 : %d\n", result);
      result = duhagi(5687); //이것을 없에겠습니다.
      printf("덧셈결과 그 두번째 : %d \n", result);
 //9번도 없에겠습니다.
      return 0;
}
cs

짜잔!! (하... 유치해) 크흠!! 아무튼 일단 불러 왔습니다.

여기에 간단하게 몇가지를 추가해 보도록 하겠습다.

일단 따로 함수를 적는 것으로 추가를 할 것이구요.

먼저 추가가될 항목은 결과를 담당하게 될 것입니다.

1
2
3
void ShowResult(int num) {
      printf("덧셈결과 : %d \n", num);
      }
cs

이것을 위에 코드에 삽입을 하도록 하겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
int duhagi(int num1, int num2) {
      return num1+num2;
}
void ShowResult(int num) {
      printf("덧셈결과 : %d \n", num);
      }
int main (void) {
      int result;
      result = duhagi(3457);
      ShowResult(result);
      return 0;
}
cs

이렇게 합류가 되었습니다.

그러면 일단 합류한 함수를 살펴보겠습니다.

인자는 전달하고, 반환하는 값은 없는 형태입니다. (일단 소갠 그렇게 하겠습니다.)

int로 선언한 함수는 반환하겠다 라는 형태가 됩니다.

그리고 void로 선언한 함수는 반환하지 않겠다라는 말이 됩니다.

그래서 새로 추가한 함수에는 return이 존재하지 않는다.

그래서 이번시간을 마치는 것으로 하겠습니다.

마지막에 총 정리를 하도록 하겠습니다.


블로그 이미지

이사가는 사람

안녕하세요 블로그를 옮기려고 생각하고 있습니다. 해당 블로그는 폐기하고 다음 다른 블로그에서 뵙도록 하겠습니다. 감사합니다!

,

함수라는 것은 전달인자가 있고 반환값이 있는 것입니다.

이것이 가장 간단한 형태의 함수고 수학에서도 이러한 함수를 봐왔을 것 입니다.

하지만, c언어에서는 유형이 4개가 있습니다.

1. 전달인자 있고, 반환값이 있다.

2. 전달인자 없고, 반환값이 있다.

3. 전달인자 있고, 반환값이 없다.

4. 전달인자 없고, 반환값이 없다.

이러한 4개의 유형이 존재합니다.

그래서 앞으로 한편에 하나의 유형씩 간단한 고찰을 합시다.

(제가 여러분들과 다른 점은 하나 있습니다. 아주 조금 경험이 있다는 것으로 저도 배우는 입장이라고 생각하시면 편하시리라고 생각이 됩니다.)

그러면 첫번째 유형을 보도록 합시다.

1. 모두 있는 경우

이것은 그냥 모두 있는 경우 입니다.

가장 간단한 형태의 함수이며 흔하디 흔한 가장 기본 형태의 함수라고도 할 수가 있다.

그러면 수학시간 함수라는 정의가 나오기 전에 더욱 간단한 것을 배웠는데 그 간단한 것을 함수로 정의해보도록 하겠습니다.

#include <stdio.h>

int duhagi(int num1, int num2) {

return num1+num2;

}

int main (void) {

int result;

result = duhagi(34, 57);

printf("덧셈결과 그 첫번째 : %d\n", result);

result = duhagi(56, 87);

printf("덧셈결과 그 두번째 : %d \n", result);

return 0;

}

이런 함수가 가능하다는 것입니다.

자 그러면 이게 어떻게 가능한 것인가?? 에 관하여 의문점을 풀어야 하는 게 아닐까 싶습니다.

먼저 2열에서 4열까지와 5열부터 12열 까지는 다른 함수입니다.

2~4열에서 이미 덧셈연산이 이루어진 상태로 

5~12열에 있던 result = duhagi(    ,    ); 이것을 통하여 이미 연산된 함수를 불러오는 것으로 많은 반복을 하는 것을 아주 간단하게 중복하여 적을 필요 없이 하게 됩니다.

여러분들은 이 예제만 보고 판단을 하시기 보다 규모가 큰 게임개발 환경에서 이것을 생각해보시는 것을 추천합니다.

물론 따로 함수로 빼지 않아도 개발은 가능할 것입니다.

하지만 더욱 더러워지고 복잡해지는 과정에서 불필요한 요소만 늘리는 셈이 되는 것이겠죠

이전 함수를 부르는 것으로 잠시 동안 이전 함수가 실행되고 다시 돌아오는 것 입니다.

이미 정의된 함수를 부르는 것으로 개발진들의 시간을 줄일 수 있게 되는 것입니다.

(아마 이런 곳에서 버그가 많이 나오지.... 특히 배그 철재가 총알 팅기는 사운드 만들다가 비브라늄 후라이팬 된 이유는 이런 이유지 않을까 하는.....)

아무튼 다음 시간에 이어서 하도록 하겠습니다.


2018/03/10 - [C] - 함수란...?



블로그 이미지

이사가는 사람

안녕하세요 블로그를 옮기려고 생각하고 있습니다. 해당 블로그는 폐기하고 다음 다른 블로그에서 뵙도록 하겠습니다. 감사합니다!

,
제가 강좌를 진행하면서 함수에 관한 설명을 거의 생략하듯이 해왔습니다.

하지만 프로그래밍에서는 함수의 존재가 가장 크게 느껴져야 정상입니다.

아 물론 제가 하는 말은 함수가 있어야 우리가 여태까지 배운 모든 것들이 전부 쓸모가 있어진다는 소리입니다.

그러한 이유로 우리는 프로그래밍에서 함수란 무엇인가?? 에 관하여 따로 시간을 내고 설명하도록하겠습니다.

원래라면 이것은 처음에 해야하는 것이 아니냐?? 라는 소리를 하실 수도 있을 것이라고 생각을 합니다.

하지만 여러가지 함수를 배우기 직전인 지금 정의를 하는 것이 좋을 지도 모르겠다고 생각을 합니다.

입력문, 출력문, 조건문 등등 이러한 것을 거의 전부 배우고 함수를 시작하는 지금이 적기라는 소리죠

서론이 점점 길어져서 죄송하니 지금 시작을 하도록 하겠습니다.

여러분은 게임을 하거나 할때 급하게 한번에 모든 것을 시도해보거나 엄청난 양의 숙제나 그러한 것들을 보았을 때 막막하고 포기하고 부담되는 것을 느꼈을 것입니다.

함수라는 것을 배우고 여러 함수를 정의하는 것으로 우리는 이러한 코드를 분담시켜서 부담감을 줄이는 느낌으로 개발을 하는 것이 좋다고 할 수 있습니다.

아마 앞으로의 많은 개발을 하면서 느끼게 되리라고 생각을 합니다.

(실제로 저도 몇번 느낀 적이...)


서론이 너무 길어지고 이 파트는 좀 더 자세히 하고 넘어가야 한다고 생각을 하여 강좌를 나누도록 하겠습니다.


2018/03/10 - [C] - 함수라는 것에 관한 간단한 고찰 - 1


블로그 이미지

이사가는 사람

안녕하세요 블로그를 옮기려고 생각하고 있습니다. 해당 블로그는 폐기하고 다음 다른 블로그에서 뵙도록 하겠습니다. 감사합니다!

,