함수(Function)
프로그래밍 언어에서 함수란, 코드 뭉치. 반복되는 코드 뭉치가 있다면 해당 코드 뭉치를 함수로 만들어서 재사용성을 높힐 수 있습니다. 입력 혹은 출력이 있는 경우 대부분 다 함수라고 봐도됩니다.
printf()도 함수, main()도 함수
입력으로 문자열을 받아서 화면에 출력해주는 printf()도 함수입니다. 프로그램의 시작점 역할을 하는 main()도 함수였습니다.
함수의 필요성
우리는 printf() 함수를 자주 사용해왔습니다. 만약 함수를 몰랐다면 어떻게 되었을까요? printf()를 쓸 때마다, printf() 함수 내부 코드를 적어줬어야 합니다. 소스코드가 얼마나 복잡할지는 안봐도 비디오입니다. 소스코드는 불필요하게 길어지므로, 해석에 어려움을 줍니다.
함수 작성 방법 [중요 샘플 코드]
아래 내용을 주석 포함해서 빡지 써봅시다. 암기해서 어느 순간에도 툭치면 나올 정도로 써봅시다.
반환자료형 함수명(매개변수자료형 매개변수명) // 함수 선언(Declaration)이자, 정의(Definition)
{
return 반환값;
}
int main(void)
{
int num = 10; // 자료형 변수명 = 값;
함수명(인자값); // 함수 호출(Call)
return 0;
}
// Main.c
#include <stdio.h>
void Attack(char* name1, char* name2)
{
printf("%s(이)가 %s에게", name1, name2);
}
void DamageCalculate(char* name1, char* name2, int a, int b)
{
Attack(name1, name2);
printf("%d 피해를 입혔습니다.", a-b);
}
int main(void)
{
DamageCalculate("전사","고블린",100, 40);
return 0;
}
Ex060101) main() 함수
암기 후에 main() 함수를 보면, 함수 암기 내용과 동일하다는 것을 알 수 있습니다. main() 함수의 반환자료형, 함수명, 매개자료형 매개변수명, 반환값이 뭔지 짚어봅시다.
#include <stdio.h>
int main(void)
{
return 0;
}
int:반환자료형
main:함수명
(void):매개변수를 받지 않는다.
return 0:함수 호출한 곳에 0을 반환 한다.
Ex060102) PrintOneStar() 함수
별 하나를 출력하는 함수 PrintOneStar()를 선언 및 정의하고 호출하는 소스코드를 작성해보자. 실행 결과도 확인해보자.
// Main.c
#include <stdio.h>
void PrintOneStar()
{
printf("%c", '*');
}
int main(void)
{
PrintOneStar();
return 0;
}
Ex060103) Add() 함수 1
두 수를 전달 받아서 그 합을 출력하는 함수 Add()를 선언 및 정의하고 호출하는 소스코드를 작성. 실행 결과도 확인해보자.
// Main.c
#include <stdio.h>
void Add(int a, int b)
{
printf("%d", a+b);
}
int main(void)
{
Add(3, 7);
return 0;
}
Ex060104) Add() 함수 2
두 수를 전달 받아서 그 합을 반환하는 함수 Add()를 선언 및 정의하고 호출하는 코드를 작성. main() 함수에서는 반환 받은 값을 int형 변수에 저장했다가 출력하는 소스코드를 작성해보자. 실행 결과도 확인해보자.
// Main.c
#include <stdio.h>
int Add(int a, int b)
{
return a + b;
}
int main(void)
{
printf("%d", Add(3, 7));
return 0;
}
'C' 카테고리의 다른 글
| [내배캠자습]C언어 챕터 6-4 : 전방 선언 (0) | 2026.03.29 |
|---|---|
| [내배캠자습]C언어 챕터 6-3 : 스코프 (0) | 2026.03.29 |
| [내배캠자습]C언어 챕터 5-2 : 2차원 배열 (0) | 2026.03.28 |
| [내배캠자습]C언어 챕터 5-1 : 1차원 배열 (0) | 2026.03.28 |
| [내배캠자습]C언어 챕터 4-5 : 이중 반복문 (0) | 2026.03.28 |