C 스터디 4주차
함수
함수란?
특정 작업을 수행하는 코드의 집합
함수의 기본 요소
int sum(int x, int y)
{
int result;
result = x + y;
return result;
}
/*
매개 변수 x, y를 입력받아 sum() 함수의 기능을 수행하고 출력 형태는 int형으로 반환하라는 함수
*/
함수의 형태
int sum(int x, int y)
{
int result;
result = x + y;
return result;
}
- 출력 형태 : 있음(int)
- 입력 형태 : 있음(int x, int y)
특징 : 출력 형태가 있어서 함수 내에서 반드시 return문을 사용해야 한다
int input(void) { int number; scanf("%d", number); return number; }
출력 형태 : 있음(int)
- 입력 형태 : 없음(void)
특징 : 출력 형태가 있어서 함수 내에서 반드시 return문을 사용해야 한다
void print(int x) { printf("%d\n",x); }
출력 형태 : 없음(void)
- 입력 형태 : 있음(int)
- 특징 : 출력 형태가 void이므로 함수 내에 return문이 없어도 된다
void print2(void)
{
printf("서현범\n");
}
- 출력 형태 : 없음(void)
- 입력 형태 : 없음(void)
- 특징 : 출력 형태가 void이므로 함수 내에 return문이 없어도 된다
함수 선언
C언어는 절차지향(순서지향) 언어이기 때문에 코드를 컴파일할 때 컴파일 방향은 위에서 아래로 진행된다.
#include <stdio.h>
int sum(int x, int y)
{
int result;
result = x+y;
return result;
}
int main(void)
{
int answer;
answer = sum(3, 4);
printf("%d\n", answer);
return 0;
}
따라서 위와 같은 코드는 전혀 문제가 생기지 않는다.
#include <stdio.h>
int main(void)
{
int answer;
answer = sum(3, 4);
printf("%d\n", answer);
return 0;
}
int sum(int x, int y)
{
int result;
result = x+y;
return result;
}
위와 같은 코드는 main함수에서 sum() 함수를 사용하려 하지만 위에서 부터 코드를 컴파일하면 sum()함수가 존재하지 않아 오류가 발생한다.
#include <stdio.h>
int sum(int x, int y);
int main(void)
{
int answer;
answer = sum(3, 4);
printf("%d\n", answer);
return 0;
}
int sum(int x, int y)
{
int result;
result = x+y;
return result;
}
하지만 함수를 먼저 선언을 해주면 오류가 발생하지 않는다. main함수 위에 sum()함수를 선언해주었기 때문이다.