함수**
3 - 2 함수와 매개변수
목차
- 매개변수 없는 함수 만들기
- 매개변수 있는 함수 만들기
- 지역 변수
- 함수 호출 방법
매개변수 없는 함수 만들기
-
편의를 위해 main, hello함수를 옆에 배치함. 코딩상에서는 main이 먼저 온 후 hello가 뒤에 있는 형태이다.
-
main함수를 만들었을때, 그 안에 hello라는 사용자 정의함수를 호출하고자 한다. 그런데 이 hello는 밑에 hello()를 실행하는 함수를 의미한다.
-
함수는 호출은 되지만 어떤 값을 넘기거나 가져오지 않기 때문에 다음과 같은 형태로 만들 수 있다.
-
사용자 정의함수를 만들때는 main이라고 하는 함수 위에 함수의 이름과 매개변수가 있는지 없는지, 있다면 어떤 형태로 몇개인지를 나타내주어야 한다. 그리고 리턴하는 값이 있다면 그것의 데이터 타입을 적어주어야 한다. 지금은 함수의 원형에서 넘기는 것도 없고 받는 것도 없음을 표현하고 있다. 이를 함수의 원형, 또는 함수의 function prototype이라고 한다.
-
사용자 함수 정의에서도 가져오는 것이 없는 경우 void.. 그리고 아무 값도 오지 않을 때에는 return또한 생략이 가능하다. 이 return은 나를 호출했던 쪽으로 돌아가라는 것. 따라서 이런 경우에는 전체를 생략해도 다시 안으로 돌아가게 되어있다.
#include<stdio.h>
void hello(void) // 함수 원형
void(main){
hello(); // 함수 호출
}
// 함수 정의
void hello(){
printf("Hello C!");
return;
}
사용자 정의 함수 만들기
- 여기서는 main함수에서 총합을 구하는 sum을 모두 적어놓았다. 사용자로부터 값을 두개를 가져와 이를 더해 출력하는 프로그램.
- 그런데 이런 더하게 되는 부분을 자주 하게 될 경우, 따로 사용자 정의 함수로 만들었으면 좋겠다는 의미에서 따로 사용자 정의함수를 만들어보기로 하였다.
매개변수 있는 함수 만들기
- 왼쪽의 경우, main에서 사용자로부터 입력받는 점수를 선언하게 된다. 그래서 처음에는 a, b = 0, sum = 0이라 한다.
- 이 블럭 안에 선언된 변수를 지역변수라 한다. 이는 우리가 만든 데이터를 아무나 함부러 가져가거나 수정할 수 없도록 데이터를 보호하는 방법으로써 아주 중요하게 쓰이는 규칙이다.
- 그런데 우리가 하고싶은 것은 여러개의 내용을 하나에 다 넣으면 너무 복잡해지므로 main에서 필요한 값만 보내고 필요한 값만 받아오고싶을때 이렇게 사용자 정의함수를 만들게 된다.
- 사용자 정의함수에서든 아니든 어디서든 지역변수(local variable)를 선언 가능하다.
C언어 구조 : C프로그램은 여러 개의 함수로 구성
C프로그램 실행 순서
용어 정리
- 매개변수(parameter, 인자, argument)
- 함수와 함수 사이에 주고 받는 값
ex) 변수값, 상수값 등
- 함수와 함수 사이에 주고 받는 값
- 변수(variable)
- 프로그램에서 데이터를 저장하는 공간
- 지역변수 : 함수 지역 안에서 선언된 변수는 다른 변수에서 그 내용을 보거나 수정할 수 없음(다시 말해 지역변수의 규칙이라는건, 그 지역안에서 선언된 변수가 다른 곳에 영향을 미치지 않기에 그 값을 보내려면 함수를 호출하면서 그 값을 넣어보내야 함.)
요약정리
- 매개변수 없는 함수 만들기
- 매개변수 있는 함수 만들기
- 지역 변수
- 함수 호출 방법 : call by value
반응형
'컴퓨터공학입문' 카테고리의 다른 글
4 - 1 연산자(사칙, 관계, 논리 연산자)(operator) (0) | 2019.08.31 |
---|---|
3 - 3 함수 호출 방법 (0) | 2019.08.31 |
3 - 1 사용자 정의 함수 (0) | 2019.08.28 |
2 - 4 프로그램 구조 (0) | 2019.08.26 |
2 - 3 데이터 타입(data types) (0) | 2019.08.25 |