입력 값에 대해 어떤 가공을 통해 값을 만들어내는 구조/기능 필요한 이유 : 코드의 재사용성
함수를 만들때는 함수 하나당 하나의 기능만 만들기
반환 타입 함수 이름 매개 변수
int main ()
반환 타입 : 반환 시 내보내는 값의 자료형 함수 이름 : 메모리 공간에 접근하기 위한 주소/키, 함수의 내용을 포괄하도록 짓기 매개 변수(파라미터/인자값) : 함수 안으로 입력하는 값을 전달하는 곳
void Test(); - 함수 선언부
int main(){
Test();
}
void Test(){ - 함수 정의부
....
}
() : 함수 호출 연산자
call by value - 함수 인자로 전달되는 값을 복사해서 전달, 원본 값 변형 x
call by reference -
*스택 프레임
**함수 오버로딩
같은 이름의 함수가 호출 될 때, 어떤 함수를 호출할지 컴파일 타임에 결정되는 문법
- 함수의 이름이 같아야 함, 단 매개 변수의 형식은 달라야 한다.
- 함수의 매개 변수 종류에 따라 어떤 함수가 호출 될 지 결정
- 반환 타입의 다른 점과는 무관 (오직 함수 이름과 매개 변수의 형식만으로 오버로딩)
1. void Test(int _Data);
2. int Test(int _Data);
1번과 2번의 반환 타입이 달라도 오버로딩은 동작하지 않음
**default 매개 변수
void Test(int _Data=100);
- 자주 사용하는 함수의 매개 변수를 초기화 값으로 설정
- 선언부에서 지정
- 매개 변수의 맨 오른쪽부터 순차적으로 기본값을 지정해야 한다.
**함수와 static
void Test(){
static int iNum=100;
cout<<(++iNum)<<endl;
}
data 영역에 할당되어 프로그램이 종료될 때까지 사용가능
정적 변수: 중괄호 안에서만 사용가능