반응형
[함수]
정의: 여러개의 작업(명령)들의 나열된 묶음이다.
함수의 구조
<함수의 구현부>
자료형 함수명() {
명령1;
명령2;
명령3;
return 리턴값;
}
<함수의 호출부>
함수명();
—————————————————-
<실습>함수.c
#include <stdio.h> open() { printf("문을 열어\n"); printf("바닥 청소해\n"); printf("포스기 켜\n"); printf("빵을 진열해\n"); } int main() { open(); return 0; }
*함수안에는 함수를 쓸 수 없다.
————————————————————
[매개변수와 리턴값]
<return, 리턴값>
return,리턴값; 의 기능: 함수의 결과값을 반환한다 -> 함수를 실행하고 결과값을 return값으로 돌려줘라
return type: 결과값(리턴값)의 자료형을 함수의 이름앞에 적어준다.
void type:결과값이 없을때 적어준다.
<매개변수>
함수 호출시 전달할 값을 저장할 수 있는 변수를 만들어줘야 한다. 한번에 여러개의 매개변수 입력은 할 수 없다.
ex) int sum(int x,y) -> X
int sum(int x, int y) -> O
호출부 구현부
함수(3) 함수(int 변수)
함수(‘a’) 함수(char 변수)
함수(“hello”) 함수(char[] 변수)
함수(3.14f) 함수(float 변수)
————————————————————-
<실습>함수실습.c
sum(x,y) = x+y
sub(x,y) = x-y
mul(x,y) = x*y
div(x,y) = x/y
max(x,y)= 더 큰수
min(x,y)= 더 작은수
-main
두 숫자를 사용자에게 입력받아 입력받은 숫자의 덧셈,뺄셈, 곱셈, 나눗셈 결과를 각각 출력하는 코드 구현
#include <stdio.h> int sum(int x, int y) { return x + y; } int sub(int x, int y) { return x - y; } int mul(int x, int y) { return x * y; } int div(int x, int y) { return x / y; } int max(int x, int y) { if (x - y < 0) { return y; } else { return x; } } int min(int x, int y) { if (x - y < 0) { return x; } else { return y; } } int main() { int x; int y; printf("숫자1을 입력하세요: "); scanf("%d", &x); printf("숫자2를 입력하세요: "); scanf("%d", &y); printf("sum(x, y)=%d\n", sum(x, y)); printf("sub(x, y)=%d\n", sub(x, y)); printf("mul(x, y)=%d\n", mul(x, y)); printf("div(x, y)=%d\n", div(x, y)); printf("max(x, y)=%d\n", max(x, y)); printf("min(x, y)=%d\n", min(x, y)); return 0; }
----------------------------------------------
함수는 호출하기 전에 어떤 명령들로 구현이 되어있는지 미리 알려줘야 한다.
함수구현부
main() {
함수호출;
}
-> 함수가 너무 많아지면, main을 찾기가 힘들다
함수를 밑에다 구현하고 싶다.
main() {
함수호출;
}
함수구현부
#include//함수의 원형, 프로토타입 int sum(int, int); int sub(int, int); int mul(int, int); int div(int, int); int max(int, int); int min(int, int); int main() { int x; int y; printf("숫자1을 입력하세요: "); scanf("%d", &x); printf("숫자2를 입력하세요: "); scanf("%d", &y); printf("sum(x, y)=%d\n", sum(x, y)); printf("sub(x, y)=%d\n", sub(x, y)); printf("mul(x, y)=%d\n", mul(x, y)); printf("div(x, y)=%d\n", div(x, y)); printf("max(x, y)=%d\n", max(x, y)); printf("min(x, y)=%d\n", min(x, y)); return 0; } int sum(int x, int y) { return x + y; } int sub(int x, int y) { return x - y; } int mul(int x, int y) { return x * y; } int div(int x, int y) { return x / y; } int max(int x, int y) { if (x - y < 0) { return y; } else { return x; } } int min(int x, int y) { if (x - y < 0) { return x; } else { return y; } }
해결방법: 함수의 프로토타입(원형)을 적어준다.
<구조>
함수의 프로토타입
main(){함수의 호출();}
함수의 구현부
<함수의 프로토타입 작성방법>
자료형 함수명(타입,타입);
————————————————————
헤더파일 만들기
- 우리가 작성한 함수의 구현부를 모아놓은 헤더파일 만들기
- 사용자 라이브러리(헤더파일)은 “”을 사용해서 include가능
#include "calc.h" int main() { echo("hello\n"); int x,y; printf("숫자1을 입력하세요: "); scanf("%d", &x); printf("숫자2를 입력하세요: "); scanf("%d", &y); printf("sum(x, y)=%d\n", sum(x, y)); printf("sub(x, y)=%d\n", sub(x, y)); printf("mul(x, y)=%d\n", mul(x, y)); printf("div(x, y)=%d\n", div(x, y)); printf("max(x, y)=%d\n", max(x, y)); printf("min(x, y)=%d\n", min(x, y)); return 0; }
-----------------------------------------------------
#includeint sum(int x, int y) { return x + y; } int sub(int x, int y) { return x - y; } int mul(int x, int y) { return x * y; } int div(int x, int y) { return x / y; } int max(int x, int y) { if (x - y < 0) { return y; } else { return x; } } int min(int x, int y) { if (x - y < 0) { return x; } else { return y; } } void echo(char str[]) { printf("%s", str); }
반응형