관심쟁이 영호

[C언어기초 #3.1 함수를 직접만들어보자!] 본문

학교공부/C언어의 왕!

[C언어기초 #3.1 함수를 직접만들어보자!]

관심쟁이 영호 2020. 2. 19. 01:30
반응형

안녕하세요!

최고왕이에요.

 

요새 너무 놀러 가고 싶은데 ㅠㅠ

코로나 바이러스가 유행해서

밖에 못돌아 다니겠어요..

 

모두들 마스크 꼭 착용하시고!

손소독제 확실하게 사용해서

건강해야 해요!

 

 


오늘은 저번 시간에 이어서

함수를 직접 한번 만들어보는 시간을 가질 거예요!

 

일단 함수를 만들기 이전에

C언어에서의 기본구조를 살펴봐요!

 

저번 시간에 여러분들은 이 사진을 보셨을 거예요!

지금까지 도화지를 만들 때

가장 먼저 만든 함수인데요!

이것은 메인 함수라고 불러요!

 

컴퓨터를 구동시키면

한줄한줄 읽어가며 컴퓨터가

선언하라는 문장을 보면 선언을 하고,

출력하라는 문장을 보면 출력을 하게 되며,

순차적으로 윗줄부터 차례차례 내려가게 돼요!

그러다가 메인 함수를 만나게 됩니다!

그리고 메인 함수를 한줄한줄 읽어나가죠.

 

우리는 실제로 메인함수 안에서

다른 함수를 실행하라는 코드를 입력하게 될 것이고,

컴퓨터는 메인 함수에서 다른 함수를 실행하라는 코드를 보게 되면

다른 함수로 시선을 돌리게 되어

다른 함수 부분을 순차적으로 윗줄부터 읽고

그 함수부분을 다 읽었을 때

방금 메인 함수에서 읽은 마지막 부분으로 돌아오게 되는 거예요!

 

저번 시간에 설명했듯이

메인 함수에

더하기를 하는 add() 함수를 사용한다고 생각해봐요!

 

그러면 메인 함수 내의 코드는

 

int add(int, int){

 

~~~~~

 

return ~~~

}

 

int main(void){

 

    add(1, 2);

 

}

 

이런 식으로 생겼을 거예요!

 

메인 함수를 첫 줄부터 차곡차곡 읽어나가면서

add(); 함수를 보게 될 것이고

컴퓨터는 add함수가 있는 부분을 찾기 시작합니다.

 

그럼 실제로 1이라는 숫자와 2라는 숫자를 입력했을 때

더 하기연 산을 하여서 3을 도출해내는 함수를 만들어볼게요!

 

 

실제 코드를 보면

지금 까지는 모든 코드를

main함수 내에 적었었죠!

 

하지만 이제는 main함수의 밖에

add함수를 만들었어요!

 

 

실제 이 사진을 보시면

void부분에 1, 2라는 것이 있는 것을 보실 수 있을 거예요!

입력 형태가 들어가는 부분에는

 

파라미터를 적어줘요!

파라미터가 무엇이냐면

실제로 add함수를 구동했을 때

1, 2를 더해주어야 하는데

 

컴퓨터 입장에서는

add함수를 구동하기 이전에 "어떤 값 두 개를 더해줘야 하냐??"라고

생각할 수 있을 거예요!

 

그래서 add함수에 1, 2 값을 인자 값(파라미터)으로 넘겨줘야 해요!

모든 함수에서 인자 값을 넘겨줘야 하는 함수가 있고

 

반대로 인자 값이 필요 없는

함수가 있어요!

예를 들면 단순하게 화면에 "안녕하세요!"라는 글자를 출력하라는

함수를 구동할 때에는 따로 넘겨줘야 하는 파라미터가 없죠!

 

그렇게 생각해주시면 될 것 같아요 ㅎㅎ

 

 

 

그럼 변수를 활용하여

함수를 구동해볼게요!

 

 

 

이제 main함수에 a, b라는 int형 변수를 선언해주었어요!

그다음 a, b라는 변수에 초기화를 해주고

파라미터 값으로 a, b값을 넘겨주었어요!

 

그다음 add함수로 덧셈 연산을 시켜주어

출력해보았어요!

 

정상적으로 a+b값이 18이 나왔네요!

 

이런 식으로 변수와 같이 활용하게 된다면

함수와 변수를 아주 간편하거나

아주 유용하게 사용할 수 있을 것 같네요!

 


핵심적으로 알아둬야 할 것!

 

위쪽에 주석으로 말씀드렸듯이

 

main함수의 변수 이름이

add함수에서 똑같은 변수 이름이 적용되는 건 아니에요!

위치만 제대로 입력해주면 add함수는 그 자리에 위치한 것이(앞자리에 위치한것이 abcabc) 지정해둔 변수가 되는 거예요!

 

고로 add함수 내에 printf출력문에 abcabc + bbbbbb를 a + b로 나타냈다면!

에러가 생겼을 거예요 ㅎㅎ

 

왜냐면 add함수 입장에서는 a, b가 선언되지 않았기 때문이에요!

한마디로 add함수 입장에서는 a, b가 모르는 친구 들인 셈이에요!

 


함수가 매우 매우 중요해서

오늘은 정말 말이 많았어요 ㅠㅠ

 

그래서 여러분들이 잘 이해하셨을까 모르겠어요..

 

혹시나 글 보시고!

잘 모르시겠거나

잘못된 부분을 보셨을 경우에 댓글로 따끔하게 말씀해주시면 매우 감사하겠습니다!

 

항상 노력하는 최고왕이 될게요 ㅎㅎ

300x250
Comments