C 언어(8) 함수
C 언어(8) 함수
함수
함수란 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 프로그램 코드의 집합
입니다.
함수 정의
위에 함수 선언만으로는 함수를 사용할 수 없습니다.
왜나하면 아직 함수의 기능이 구현되지 않았기
때문입니다.
함수의 기능을 구현하기 위해서는 함수를 정의해야 합니다.
함수는 다음과 같이 [반환 타입
함수 이름
(매개 변수
)]
{
명령어
}
로 선언과 정의
를 할 수 있습니다.
1
2
3
4
5
int sum(int value1, int value2)
{
int result = value1 + value2;
return result; // value1 과 value2를 더한 값을 반환
}
함수 호출
함수는 다음과 같이 [함수 이름
(전달할 매개변수
)] 로 호출할 수 있습니다.
1
2
int result = sum(5, 10); // value1 로 5, value2 로 10을 건네주어 15의 값을 반환받음
printf("%d", result);
15
함수 선언
C 언어에서 컴파일러에게 함수의 존재를 알리기 위해서
는 함수 선언
을 해줘야 합니다.
함수는 다음과 같이 [반환 타입
함수 이름
(매개 변수
)] 으로 선언
할 수 있습니다.
1
int sum(int value1, int value2);
다음과 같은 코드는 컴파일 에러를 발생시킵니다.
1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h>
int main()
{
print(); // error
return 0;
}
void print()
{
printf("Hello, world!\n");
}
함수의 반환 타입으로
void
는아무것도 반환하지 않는다.
라는 뜻입니다.
그 이유는 main 함수에서는 print함수를 호출하려 하지만
C 언어의 컴파일러는 위에서 아래로 코드를 해석
하기 때문에
print 함수에 대한 정보가 없기 때문
입니다.
때문에 다음과 같이 print 함수 선언을 print함수를 호출하는 함수보다 먼저 선언
해야합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h>
void print();
int main()
{
print(); // ok
return 0;
}
void print()
{
printf("Hello, world!\n");
}
This post is licensed under CC BY 4.0 by the author.