250x250
Notice
Recent Posts
Recent Comments
관리 메뉴

탁월함은 어떻게 나오는가?

[C++] 함수의 정의 본문

[Snow-ball]프로그래밍(컴퓨터)/C, C++

[C++] 함수의 정의

Snow-ball 2020. 10. 9. 22:34
반응형

함수의 정의

 

함수란?

- 필요한 작업을 수행하는 프로그램 문장들을 하나의 단위로 모아 놓고 이름을 부여한 것입니다.

- 함수에 정의된 처리가 필요한 부분에서 호출하여 사용합니다.

- 매개변수를 통하여 함수에서 처리할 데이터(인수)를 전달합니다.

- 함수는 정해진 처리를 한 후 결과값을 반환할 수 있습니다.

- 함수의 실행을 완료하면 호출한 곳으로 복귀합니다.

- 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)

- 실매개변수의 참조를 형식 매개변수에 전달합니다.

- 함수에서 형식 매개변수의 값을 변경하는 것은 실매개변수의 값을 변경하는 것과 같습니다.

- 형식 매개변수에 복사되는 데이터의 양은 실매개변수의 크기와 관계없이 일정합니다 -> 많은 양의 데이터로 구성되는 구조체나 객체를 인수로 전달하는 경우 효율적입니다.

 

 

반응형
Comments