본문 바로가기

프로그래밍/C++

[C++] C언어 함수(function)의 구성, 정의 기초 개념잡기


함수란?

- function이라고 하며 뜻은 기능을 뜻합니다.
- 기능을 구현하는 부분을 따로 분리하여 구현한 것으로, 구조화 프로그램의 중요한 개념입니다.
* 구조화: 프로그램을 기능별로 함수화 하는것 (쉽게말해 프로그램을 기능별로 쪼개는것)
* 여기서 구조화된 데이터를 처리할때 struct를 사용하는데 이를 구조체라 하며 구조체에 대해서는 추후 다시 포스팅 하도록 하겠습니다.

함수의 기본 형태




함수는 사진과 같이 반환자료형, 함수이름, 인수목록으로 나뉩니다.


- 반환자료형: 메인함수의 사용에서 return 0;부분을 보면 0을 반환한다는 뜻인데 정수형으로 반환하여 int를 사용했습니다.

- 함수이름: main함수의 경우 프로그램 실행시 가장 먼저 실행되는 함수입니다.

꼭 필요한 함수이며, 변경할 수 없지만 사용자 정의 함수의 경우에는 일반적인 명명규칙에 따라 사용자 지정이 가능합니다.

- 인수목록: main함수에는 보통 아무것도 쓰지 않습니다. 하지만 괄호안에 void가 생략된 형태입니다.

.cpp파일로 저장하고 컴파일 해보면 warning이 뜨는 것을 확인하실 수 있습니다.


함수의 기본형태 예시


1
2
3
4
5
6
void func (void)
{
 
/* 문장 */
 
}
cs

반환값X, 매개변수X



1
2
3
4
5
6
void func (int value)
{
 
/* 문장 */
 
}
cs
반환값X, 매개변수O(int)



1
2
3
4
5
6
void func (int value1, int value2)
{
 
/* 문장 */
 
}
cs

반환값X, 매개변수O(매개변수가 1개이상 사용 가능 하지만 반드시 매개변수의 이름이 중복되면 안됩니다.)


1
2
3
4
5
6
int func (void)
{
 
/* 문장 */
    return 반환값;
}
cs

반환값O, 매개변수 X


1
2
3
4
5
6
double func (int value)
{
 
/* 문장 */
    return 반환값;
}
cs

반환값O, 매개변수O

반환값이 double형이기 때문에 반드시 return도 double형이여야 합니다.


반환값, 매개변수란?

반환값

- return이라고 하며 현재 있는 함수에서 빠져나가 함수를 호출했던 곳으로 되돌아가라는 뜻입니다.
return 0; 은 0이라는 값을 반환하라는 의미가 되며,
return 1; 은 1이라는 값을 반환하라는 의미입니다.

매개변수

- parameter라고 하며 하나의 변수라고 정의할 수 있음 (예를들어 사람의 무게, 키등의 모든 수치)


함수의 종류

- 함수의 종류에는 사용자 정의함수, 라이브러리 함수가 있습니다.

사용자 정의 함수

- 사용자가 구현하고 싶은 기능을 구현하는것

라이브러리 함수

- 우리가 흔히 써오던 printf(), scanf()와 같은 함수이며, 두 함수는 stdio.h파일 안에 정의되어있습니다.
즉 우리는 printf()라는 함수를 호출하여 손쉽게 구절하나를 통해 원하는 출력을 할 수 있다고 생각하면 되겠습니다.

한줄요약.
사용자정의 함수: 사용자가 하고싶은대로 기능을 구현해놓은 함수
라이브러리 함수: 이미 구현해놓은 함수를 사용하는것