일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 다독
- 돈
- 채권
- 서평
- 백준알고리즘
- 화장품
- 주식
- 재테크
- 독서
- JavaScript
- 독후감
- 성분
- 알고리즘 공부
- 지혜를가진흑곰
- Java
- C
- 알고리즘공부
- 자바스크립트
- algorithmtraining
- 자바
- 알고리즘트레이닝
- 투자
- 경제
- 책알남
- 책을알려주는남자
- 프로그래밍언어
- algorithmTest
- C++
- algorithmStudy
- 프로그래머스 알고리즘 공부
- Today
- Total
탁월함은 어떻게 나오는가?
[C++] 함수의 정의 본문
함수의 정의
함수란?
- 필요한 작업을 수행하는 프로그램 문장들을 하나의 단위로 모아 놓고 이름을 부여한 것입니다.
- 함수에 정의된 처리가 필요한 부분에서 호출하여 사용합니다.
- 매개변수를 통하여 함수에서 처리할 데이터(인수)를 전달합니다.
- 함수는 정해진 처리를 한 후 결과값을 반환할 수 있습니다.
- 함수의 실행을 완료하면 호출한 곳으로 복귀합니다.
- C++ 프로그램은 함수를 기본 단위로 하여 구성되었습니다.
return 명령
- 함수를 마치고 함수를 호출한 곳으로 복귀하는 명령입니다.
- 함수 안의 어느 곳이든 복귀를 위해 사용할 수 있습니다.
- return Expression은 함수 머리부에 선언한 Return Type과 일치하는 자료형의 수식 또는 묵시적 형 변환이 가능한 자료형의 수식을 사용합니다.
- 반환값이 없는 함수의 Return Type은 void로 선언합니다.
- main함수에서는 return 명령을 만나지 않은 상태로 함수의 끝에 도달하면 'return 0;'을 실행한것과 같습니다.
함수의 호출
함수를 호출할 때에는 함수의 이름과 함께 필요한 인수를 전달합니다.
1. functionName(aParameterList);
2. varName = functionName(aParameterList);
// aParameterList : 인수로 전달할 실 매개변수 나열입니다.
// 형식 1 : 반환값 유무에 관계없이 사용가능합니다.
// 형식 2 : ReturnType이 void가 아닌 함수에 사용할 수 있습니다.
함수의 장단점
함수의 장점
- 의미있는 작업 단위로 모듈화 -> 간결하고 이해하기 쉬운 프로그램을 만들수 있습니다.
- 반복 사용되는 코드의 중복 방지가 됩니다.
- 잘 설계된 함수는 다른 응용에서 재사용할 수 있습니다.
함수의 단점
- 함수 호출과 복귀과정에서 처리시간이 처리됩니다. -> 매우 효율적으로 동장해야 하는 함수라면 inline 함수로 선언해야합니다.
인수의 전달
값 호출(call-by-value)
- 장점 : 실매개변수와 형식 매개변수는 별개의 데이터이므로 불필요한 부작용이 발생하지 않습니다.
- 단점 : 구조체와 같이 많은 양의 데이터로 구성된 인수를 전달할 경우 데이터의 복사량이 많아집니다.
참조 호출(call-by-reference)
- 실매개변수의 참조를 형식 매개변수에 전달합니다.
- 함수에서 형식 매개변수의 값을 변경하는 것은 실매개변수의 값을 변경하는 것과 같습니다.
- 형식 매개변수에 복사되는 데이터의 양은 실매개변수의 크기와 관계없이 일정합니다 -> 많은 양의 데이터로 구성되는 구조체나 객체를 인수로 전달하는 경우 효율적입니다.
'[Snow-ball]프로그래밍(컴퓨터) > C, C++' 카테고리의 다른 글
[C++] Counter 클래스 만들기 (0) | 2020.10.12 |
---|---|
[C++] 객체지향 프로그래밍의 주요 개념들 (0) | 2020.10.12 |
[C++] inline 함수 (0) | 2020.10.07 |
[C++] 함수의 다중정의 (0) | 2020.10.06 |
[C++] 디폴트 인수 (0) | 2020.10.06 |