Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

행복한 개구리

C++ Functions - Functions 본문

C++/공부내용

C++ Functions - Functions

HappyFrog 2022. 6. 27. 02:26


 

 

 

C++ 함수

함수는 호출될 때만 실행되는 코드 블럭입니다.

 

당신은 매개별수라고 불리는 데이터를 함수에 전달할 수 있습니다.

 

함수는 특정한 행동을 실행할 때 사용되며 코드를 재사용하기 위해서 중요한 기능입니다: 코드를 한 번 정의해두면 여러번 사용할 수 있어집니다.

 

 

 


함수 만들기

C++는 코드를 실행시킬 때 필요한  main() 과 같은 정의된 함수를 제공합니다. 하지만 어떤 작업을 위해서 당신이 직접 함수를 만들어 사용할 수 있습니다.

 

함수를 생성(종종 선언이라고 하기도 합니다.)하기 위해서는 소괄호 ()가 따라오는 함수의 이름을 명명해주면 됩니다:

 

 

문법

void myFunction() {
  // 실행시킬 코드
}

 

 

예시 설명

  •  myFunction() 은 함수의 이름입니다.
  •  void 는 함수가 반환값을 가지지 않는다는 뜻입니다. 반환 값들에 대해 다음 챕터에서 더 상세히 배울 것입니다.
  • 함수 안에는 함수가 해야할 코드를 정의합니다.

 

 

 


함수 호출

선언된 함수는 그 즉시 실행되진 않습니다. 이것들은 "나중에 사용할 때를 위해 저장"된 것들이며 나중에 호출되면 실행됩니다.

 

함수를 호출하기 위해서 소괄호 () 와 세미콜론 ; 이 따라오는 함수의 이름을 작성하면 됩니다.

 

아래 예시에서  myFunction() 은 호출됐을 때 텍스트를 출력합니다.

 

 

예시

#include <iostream>

using namespace std;

// 함수 생성
void myFunction() {
	cout << "I just got executed!\n";
}

int main() {
	myFunction();	// 함수 호출
	return 0;
}

 

또한 함수는 여러번 호출될 수 있습니다.

 

 

예시

#include <iostream>

using namespace std;

void myFunction() {
	cout << "I just got executed!\n";
}

int main() {
	for (int i = 0; i < 3; i++) {
		myFunction();
	}
	return 0;
}

 

 

 


함수 선언과 정의

C++의 함수는 두 부분으로 이루어져 있습니다:

  • 선언: 반환 타입, 함수의 이름, 매개변수(있다면)
  • 정의: 함수의 내용(실행될 코드)

 

void myFunction() { // 선언
  // 함수의 내용 (정의)
}

 

참고:  myFunction() 과 같이 사용자가 정의한 함수가  main() 함수 이후에 선언된다면 에러를 일으킵니다:

 

int main() {
  myFunction();
  return 0;
}

void myFunction() {
  cout << "I just got executed!";
}

// Error

 

 

하지만 코드의 최적화를 위해서 함수의 정의와 선언을 분리할 수 있습니다.

 

당신은 C++ 프로그램에서  main() 함수 위에 함수를 선언하고 아랫쪽에서 정의하는 경우를 자주 볼 것입니다. 이것은 코드를 정리하기 쉽게 해주고 가독성을 높여줍니다:

 

 

예시

#include <iostream>

using namespace std;

// 함수 선언
void myFunction();

int main() {
	myFunction();	// 함수 호출
	return 0;
}

// 함수 정의
void myFunction() {
	cout << "I just got executed!";
}